from create and openssl apple-push-notifications pkcs#12

create - openssl cer to pfx



aps_developer_identity.cer to p12 sin tener que exportar desde Key Chain? (3)

Impresionante trabajo aquí. Gracias por la ayuda real chicos. He dejado caer mi script de shell a continuación que puede ayudar a otros. Tengo varias de las claves para tratar y también quería un guión. Este script generará nombres estáticos para los archivos de salida (aunque eso sería fácil de cambiar).

Espero que ayude a alguien más.

Ejemplo de uso (asumiendo el nombre del script):

$ . thisScript request_file.cer priv_key.p12 aps_dev.cer

La secuencia de comandos:

if [ $# -ne 3 ] then echo "Error in $0 - Invalid Argument Count" echo "Syntax: $0 request_cer_file p12_file app_cer_file output_filename" echo " - request_cer_file is the request file you sent to apple" echo " - p12_file is found in your keychain (it''s the private key)" echo " - app_cer_file is found on App ID screen from Apple" else reqFile=$1 p12File=$2 cerFile=$3 certPEM=''apn_cert.pem'' pKeyPEM=''apn_pkey.pem'' pKeyNoEncPEM=''apn_pkey_noenc.pem'' p12FileOut=''apn_cert_key.p12'' # remove old rm $certPEM rm $pKeyPEM rm $pKeyNoEncPEM rm $p12FileOut #convert *.cer (der format) to pem openssl x509 -in $cerFile -inform DER -out $certPEM -outform PEM #convert p12 private key to pem (requires the input of a minimum 4 char password) openssl pkcs12 -nocerts -out $pKeyPEM -in $p12File # if you want remove password from the private key openssl rsa -out $pKeyNoEncPEM -in $pKeyPEM #take the certificate and the key (with or without password) and create a PKCS#12 format file openssl pkcs12 -export -in $certPEM -inkey $pKeyNoEncPEM -certfile $reqFile -name "apn_identity" -out $p12FileOut # # # If all things worked then the following should work as a test # openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apn_cert.pem -key apn_pkey_noenc.pem # # echo "Looks like everything was successful" echo "Test command:" echo "openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apn_cert.pem -key apn_pkey_noenc.pem" echo fi

Tengo una gran cantidad de certificados ''aps_developer_identity.cer'' exportados desde el portal de desarrolladores de iPhone. Todos se crearon utilizando la misma Solicitud de firma de certificado y (por lo tanto) la misma clave privada. Si solo exporto la clave privada de Apple Key Chain, es posible tomar la clave privada y el ''aps_developer_identity.cer'' y usar openssl para crear el certificado p12 / pkcs # 12 combinado que puedo usar en mi servidor (Windows) .

Para ser claros, sé cómo obtener una p12 combinada del llavero mediante la exportación de la clave privada y el certificado juntos, pero quiero eliminar todos los clics adicionales del mouse y escribir, si puedo.


Me las arreglé para resolver esto, solo necesita envolverse en un script de shell y está listo. Supongo que ha descargado y renombrado su certificado ''apple_developer_identity.cer'', aquí uso ''test.cer'' y que también ha exportado su clave de desarrollador desde su llavero, en el ejemplo a continuación llamado ''private_dev_key.p12''.

#convert *.cer (der format) to pem openssl x509 -in test.cer -inform DER -out test.pem -outform PEM #convert p12 private key to pem (requires the input of a minimum 4 char password) openssl pkcs12 -nocerts -out private_dev_key.pem -in private_dev_key.p12 # if you want remove password from the private key openssl rsa -out private_key_noenc.pem -in private_key.pem #take the certificate and the key (with or without password) and create a PKCS#12 format file openssl pkcs12 -export -in test.pem -inkey private_key_noenc.pem -certfile _CertificateSigningRequest.certSigningRequest -name "test" -out test.p12

NOTA: Si cree que todo esto es un poco largo para lograr lo que se puede hacer con unos pocos clics del ratón y con la escritura del nombre de un archivo, considere el caso en el que tiene 20 aplicaciones que desea habilitar para las notificaciones. Cada aplicación tiene un certificado de desarrollo y producción, que vence en 4 y 12 meses respectivamente. Ese es un trabajo muy aburrido y propenso a errores ...


Puedes hacer el certificado p12 / pkcs # 12 directamente en el llavero. No hay necesidad de ejecutar ningún comando.

1.Haga clic en su archivo de certificado de desarrollador / producción descargado del sitio de Apple Dev. (Se agregará en el llavero)

2. Supongo que tiene un archivo .p12 que obtuvo al exportar una clave privada

3. Vaya a la pestaña Mis Certificados debajo del llavero.

simplemente haga clic en su certificado dev / prod para APN.it debería mostrar la clave privada asociada a él

4.Haga clic derecho y exportar certificado en formato .p12

Ese es el archivo .p12 final !!