
Tengo un usuario sin privilegios que creé para iniciar Tomcat 8 como servicio. Tomcat ejecuta Jenkins, que se utiliza para proporcionar trabajos en los que los miembros de mi equipo pueden cargar un archivo .ipa y un perfil de aprovisionamiento y luego volver a firmar el archivo .ipa. Jenkins ejecuta un script de shell cada vez que vuelve a firmar el archivo .ipa. Ese script de shell se actualizó recientemente y ahora llama al comando de seguridad, lo que genera el siguiente error:
seguridad: falló la importación del certificado: no se pudo encontrar un llavero predeterminado.
Necesito configurar el llavero predeterminado para mi usuario de Tomcat sin privilegios.
¿Cómo puedo agregar un llavero predeterminado a un usuario sin privilegios o hacer que ese usuario use ese llavero?
No estoy seguro de si necesito ejecutar un comando o especificar el llavero en mi tomcat.plist.
Respuesta1
Encontré una solución. Pude usar lo siguiente para crear dinámicamente un nuevo llavero, agregar un certificado al llavero y luego eliminarlo:
security create-keychain -p temp "temp.keychain"
security add-certificates -k "temp.keychain" "ios_distribution.cer"
security unlock-keychain -p temp "temp.keychain"
security cms -D -k "temp.keychain" -i "blah.mobileprovision" > <entitlements>
...do some stuff...
security delete-keychain -h "temp.keychain"
Si desea configurar el llavero para un usuario sin privilegios, puede utilizar el siguiente comando:
default-keychain [-h] [-d user|system|common|dynamic] [-s [keychain]]
Ex.
default-keychain -h "temp.keychain"
Puede ejecutar ese comando desde un script de shell que está ejecutando el usuario sin privilegios (como lo estoy haciendo yo).