generate-identity.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/sh
  2. set -eo pipefail
  3. dir="$(dirname $0)"/.working
  4. cleanup() {
  5. rm -rf "$dir"
  6. }
  7. # trap cleanup EXIT
  8. # Clean Up
  9. cleanup
  10. # Create Working Dir
  11. mkdir -p "$dir"
  12. # Generate Certs
  13. openssl req -new -newkey rsa:2048 -x509 -days 7300 -nodes -config "$(dirname $0)"/codesign.cnf -extensions extended -batch -out "$dir"/certificate.cer -keyout "$dir"/certificate.key
  14. sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "$dir"/certificate.cer
  15. sudo security import "$dir"/certificate.key -A -k /Library/Keychains/System.keychain
  16. # restart(reload) taskgated daemon
  17. sudo pkill -f /usr/libexec/taskgated
  18. # need once
  19. sudo security authorizationdb write system.privilege.taskport allow
  20. # need once
  21. DevToolsSecurity -enable
  22. # openssl req -newkey rsa:2048 -nodes -keyout "$dir"/private.pem -x509 -days 1 -out "$dir"/certificate.pem -extensions extended -config "$(dirname $0)"/codesign.cnf
  23. # openssl x509 -inform PEM -in "$dir"/certificate.pem -outform DER -out "$dir"/certificate.cer
  24. # openssl x509 -pubkey -noout -in "$dir"/certificate.pem > "$dir"/public.key
  25. # rm -f "$dir"/certificate.pem
  26. # Import Certs
  27. # security import "$dir"/certificate.cer -k $KEY_CHAIN
  28. # security import "$dir"/private.pem -k $KEY_CHAIN
  29. # security import "$dir"/public.key -k $KEY_CHAIN
  30. # Generate Trust Settings
  31. npm_config_yes=true npx ts-node "$(dirname $0)"/gen-trust.ts "$dir"/certificate.cer "$dir"/trust.xml
  32. # Import Trust Settings
  33. sudo security trust-settings-import -d "$dir/trust.xml"