Genere el archivo .pem utilizado para configurar las notificaciones push de Apple


290

Intenté e intenté generar un archivo .pem, cada vez que generaba certificados desde la cuenta del cliente y luego generaba el archivo .pem usando el terminal, pero no sirve de nada. ¿Alguien puede dar un procedimiento paso a paso?

Respuestas:


936

Para habilitar la Notificación Push para su aplicación iOS, deberá crear y cargar el Certificado de Notificación Push de Apple (archivo .pem) para que podamos conectarnos con Apple Push Server en su nombre.

( Versión actualizada con capturas de pantalla actualizadas aquí )

Paso 1: Inicie sesión en el Portal de aprovisionamiento de iOS, haga clic en "Certificados" en la barra de navegación izquierda. Luego, haga clic en el botón "+".

ingrese la descripción de la imagen aquí

Paso 2: Seleccione la opción SSL (Producción) del Servicio de notificaciones push de Apple en la sección Distribución, luego haga clic en el botón "Continuar".

ingrese la descripción de la imagen aquí

Paso 3: Seleccione la ID de la aplicación que desea usar para su aplicación BYO (Cómo crear una ID de aplicación), luego haga clic en "Continuar" para ir al siguiente paso.

ingrese la descripción de la imagen aquí

Paso 4: siga los pasos "Acerca de la creación de una solicitud de firma de certificado (CSR)" para crear una solicitud de firma de certificado.

ingrese la descripción de la imagen aquí

Para complementar las instrucciones proporcionadas por Apple. Estas son algunas de las capturas de pantalla adicionales para ayudarlo a completar los pasos necesarios:

Paso 4 Captura de pantalla complementaria 1: navegue al Asistente de certificado de acceso a llavero en su Mac.

ingrese la descripción de la imagen aquí

Paso 4 Captura de pantalla complementaria 2: Complete la información del certificado. Haz clic en Continuar.

ingrese la descripción de la imagen aquí

Paso 5: Cargue el archivo ".certSigningRequest" que se genera en el Paso 4, luego haga clic en el botón "Generar".

ingrese la descripción de la imagen aquí

Paso 6: haga clic en "Listo" para finalizar el registro, se actualizará la página del portal de aprovisionamiento de iOS que se parece a la siguiente pantalla:

ingrese la descripción de la imagen aquí

Luego haga clic en el botón "Descargar" para descargar el certificado (archivo .cer) que acaba de crear. - Haga doble clic en el archivo descargado para instalar el certificado en Keychain Access en su Mac.

Paso 7: en tu Mac, ve a "Llavero", busca el certificado que acabas de instalar. Si no está seguro de qué certificado es el correcto, debe comenzar con "Apple Production IOS Push Services:" seguido de la ID del paquete de su aplicación.

ingrese la descripción de la imagen aquí

Paso 8: expanda el certificado, debería ver la clave privada con su nombre o el nombre de su empresa. Seleccione ambos elementos utilizando la tecla "Seleccionar" en su teclado, haga clic con el botón derecho (o haga clic en cmd si utiliza un solo botón del mouse), elija "Exportar 2 elementos", como a continuación:

ingrese la descripción de la imagen aquí

Luego guarde el archivo p12 con el nombre "pushcert.p12" en su escritorio; ahora se le pedirá que ingrese una contraseña para protegerlo, puede hacer clic en Enter para omitir la contraseña o ingresar la contraseña que desee.

Paso 9: Ahora la parte más difícil: abre "Terminal" en tu Mac y ejecuta los siguientes comandos:

cd
cd Desktop
openssl pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts

Paso 10: elimine pushcert.p12 del escritorio para evitar cargarlo incorrectamente en el área Build Your Own. Abra "Terminal" en su Mac y ejecute los siguientes comandos:

cd
cd Desktop
rm pushcert.p12

Paso 11: NUEVA ACTUALIZACIÓN DE AWS: cree una nueva pushcert.p12para enviar a AWS SNS. Haga doble clic en el nuevo pushcert.pem, luego exporte el resaltado solo en el verde.

ingrese la descripción de la imagen aquí Crédito: nueva actualización de AWS

¡Ahora ha creado con éxito un Certificado de notificación push de Apple (archivo .p12)! Deberá cargar este archivo en nuestra área Build Your Own más adelante. :)


11
Parece que ahora puede exportar directamente desde Keychain a un archivo PEM (pasos 8-10).
Kyle Clegg

10
@KyleClegg: ¿cómo?
eugene

3
¿Qué es el área "Build Your Own" y por qué tenemos que cargar el archivo pem?
Rafi

1
¿Por qué todas estas respuestas a través de Internet ignoran la pregunta real que se hace continuamente sobre lo que es "Construye tu propia"? ¿Dónde carga este PEM si usa Xcode?
RobertyBob

1
En mi caso, necesitaba crear dos archivos pem a partir del certificado p12. Simplemente exporte el certificado y el archivo de clave respectivamente en el acceso de llavero en lugar de exportar 2 elementos juntos. ¡Pero esta respuesta es definitivamente increíble!
wei

79

Hoy hay una solución mucho más simple: pem . Esta herramienta hace la vida mucho más fácil.

Por ejemplo, para generar o renovar su certificado de notificación push simplemente ingrese:

fastlane pem 

y se hace en menos de un minuto. En caso de que necesite un certificado de sandbox, ingrese:

fastlane pem --development

Y eso es bonito.


99
Y no solo hay PEM. Toda la herramienta fastlane es absolutamente brillante
Benjamin

¿También está disponible para sistemas que no sean de Apple?
twicejr

@KrauseFx, si lo genero a través de pem, ¿cómo consigo que se muestre aquí: developer.apple.com/account/ios/certificate ? Me parece bastante útil ver la última fecha de caducidad, etc. ¿Es esto algo que sucede automáticamente?
IonicBurger

1
@Nikola No se requiere ninguna acción en iTunes Connect, puedes usar ese archivo pem de inmediato
KrauseFx

1
@mikejd no necesitamos especificar qué p12 se debe usar para pem?
Maulik

10
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem

¿Esto funciona? Hice un archivo PEM en Windows 10 usando este método, pero recibí el mensaje "No se puede conectar a 'ssl: \ / \ / gateway.sandbox.push.apple.com" cuando uso el pem generado para enviar notificaciones push.
Arivan Bastos

3

Apple ha cambiado el nombre del certificado que se emite. Ahora puede usar el mismo certificado tanto para desarrollo como para producción. Si bien aún puede solicitar un certificado solo de desarrollo, ya no puede solicitar un certificado solo de producción.

por favor vea abajo screnshot


1

es muy simple después de exportar Cert.p12 y key.p12. Busque el siguiente comando para generar el archivo 'apns' .pem.

https://www.sslshopper.com/ssl-converter.html

command to create apns-dev.pem from Cert.pem and Key.pem

openssl rsa -in Key.pem -out apns-dev-key-noenc.pem

cat Cert.pem apns-dev-key-noenc.pem > apns-dev.pem

El comando anterior es útil tanto para Sandbox como para Producción.


1

De acuerdo con la resolución de problemas de certificados push

El certificado SSL disponible en su cuenta del Programa de Desarrolladores de Apple contiene una clave pública pero no una clave privada. La clave privada solo existe en la Mac que creó la Solicitud de firma de certificado cargada en Apple. Tanto las claves públicas como las privadas son necesarias para exportar el archivo Privacy Enhanced Mail (PEM).

Lo más probable es que no pueda exportar un PEM funcional del certificado proporcionado por el cliente es que no tiene la clave privada. El certificado contiene la clave pública, mientras que la clave privada probablemente solo exista en la Mac que creó la CSR original.

Tu también puedes:

  1. Intente obtener la clave privada de la Mac que creó originalmente la CSR. La exportación del PEM se puede hacer desde esa Mac o puede copiar la clave privada a otra Mac.

o

  1. Cree una nueva CSR, un nuevo certificado SSL y esta vez haga una copia de seguridad de la clave privada.

0

¡Gracias! a todas las respuestas anteriores. Espero que tengas un archivo .p12. Ahora, abra la terminal escriba el siguiente comando. Establezca la terminal en la ruta donde ha colocado el archivo .12.

$ openssl pkcs12 -in yourCertifcate.p12 -out pemAPNSCert.pem -nodes
Enter Import Password: <Just enter your certificate password>
MAC verified OK

Ahora se genera su archivo .pem .

Verifique el archivo .pem Primero, abra el .pem en un editor de texto para ver su contenido. El contenido del certificado debe tener el formato que se muestra a continuación. Asegúrese de que el archivo pem contenga tanto el contenido del Certificado (desde BEGIN CERTIFICATE hasta END CERTIFICATE) como la Clave privada del certificado (desde BEGIN PRIVATE KEY hasta END PRIVATE KEY):

> Bag Attributes
>     friendlyName: Apple Push Services:<Bundle ID>
>     localKeyID: <> subject=<>
> -----BEGIN CERTIFICATE-----
> 
> <Certificate Content>
> 
> -----END CERTIFICATE----- Bag Attributes
>     friendlyName: <>
>     localKeyID: <> Key Attributes: <No Attributes>
> -----BEGIN PRIVATE KEY-----
> 
> <Certificate Private Key>
> 
> -----END PRIVATE KEY-----

Además, verifica la validez del certificado accediendo al decodificador de certificados SSLShopper y pega el contenido del certificado (desde COMENZAR CERTIFICADO hasta FINALIZAR CERTIFICADO) para obtener toda la información sobre el certificado como se muestra a continuación:

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.