Llavero predeterminado de iOS para usuarios sin privilegios utilizado para iniciar Tomcat y Jenkins

Llavero predeterminado de iOS para usuarios sin privilegios utilizado para iniciar Tomcat y Jenkins

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).

información relacionada