Pregunta

¿Cómo creo un archivo .pem para almacenarlo en el servidor de alojamiento para los datos de carga útil de APN?

¿Fue útil?

Solución

Esto es lo que hice, en: blog.boxedice.com y "Protectores de Proyectos avanzados" capítulo 10 byJoe Pezzillo.

Con la aps_developer_identity.cer en el llavero:

  1. Lanzamiento acceso a llaves de tu Mac local y de la llave de acceso, filtro por la categoría Certificados. Usted verá una opción ampliable denominado “Desarrollo de Apple empuje Servicios”
  2. Haga clic en “Desarrollo Apple Push Servicios”> Exportar “Desarrollo Apple Push Servicios ID123". Guarde este archivo como apns-dev-cert.p12 algún lugar se puede acceder a él. No hay necesidad de introducir una contraseña.
  3. El siguiente comando genera el certificado en la Terminal de Mac como formato PEM (Privacy Enhanced certificado de seguridad de correo):

    openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
    

En el servidor de establecer el permiso de archivo de esta clave no cifrada usando chmod 400.

Otros consejos

Fase de desarrollo:

Paso 1: Crear certificado .pem del Certificado p.12
Comando: openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

Paso 2: Crea .pem llave de la llave p.12
Comando: openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

Paso 3: Opcional (Si desea eliminar frase de pedido en la segunda etapa)
Comando: openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

Paso 4: Ahora tenemos que combinar el .pem clave y el certificado .pem para obtener .pem de desarrollo necesarios para notificaciones Push en fase de desarrollo de la aplicación
Comando: cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem (If 3rd step is performed )

Comando: cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem (if not)

Paso 5: Comprobar la validez del certificado y la conectividad a APN
Comando: openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem (If 3rd step is not performed )
Comando: openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem (If performed )

Fase de Producción:

Paso 1: Crear certificado .pem del Certificado p.12
Comando: openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12

Paso 2: Crea .pem llave de la llave p.12
Comando: openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12

Paso 3: Opcional (Si desea eliminar frase de pedido en la segunda etapa)
Comando: openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem

Paso 4: Ahora tenemos que combinar el .pem clave y el certificado .pem para obtener .pem producción necesaria para notificaciones Push en fase de producción de la aplicación
Comando: cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem (If 3rd step is performed ) Comando: cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem (if not)

Paso 5: Comprobar la validez del certificado y la conectividad a APN
Comando: openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem (If 3rd step is not performed )
Comando: openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem   (Si se realiza)

pasos:

  1. Crear un CSR Usando clave de acceso Cadena
  2. Crear un P12 Usando clave de acceso de la cadena utilizando la clave privada
  3. APNS de ID de la aplicación y el certificado

Esto le da tres archivos:

  • La RSE
  • La clave privada como un archivo de p12 (PushChatKey.p12)
  • El certificado SSL, aps_development.cer

Ir a la carpeta en la que descargó los archivos, en mi caso el escritorio:

$ cd ~/Desktop/

Convertir el archivo .cer en un archivo .pem:

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

Convertir archivo de la clave privada en un archivo .p12 .pem:

$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12

Introduzca importación Contraseña:

MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:

Primero tiene que introducir la contraseña para el archivo .p12 modo que openssl puede leerlo. A continuación, es necesario introducir una nueva frase de contraseña que se utilizará para cifrar el archivo PEM. De nuevo para este tutorial he usado “pushchat” como la frase de contraseña PEM. Debe elegir algo más seguro. . Nota: Si no se introduce una contraseña PEM, openssl no dará un mensaje de error pero el archivo .pem generado no tendrá la clave privada en ella

Por último, combinar el certificado y la clave en un único archivo .pem:

$ cat PushChatCert.pem PushChatKey.pem > ck.pem

Lanzamiento de la aplicación Terminal y escriba el siguiente comando después del indicador

  openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes

- >> propio tutorial de Apple << - es el único conjunto de trabajo de las instrucciones que he encontrado. Es sencillo y puedo confirmar que funciona muy bien tanto en un servidor Linux PHP y un servidor de ventanas php.

Puede encontrar su 5-paso proceso de creación del PEM a la derecha en la parte inferior de la página.

Puede echar un vistazo aquí. He descrito el proceso detallado con imágenes, desde la creación del certificado, a la llave aplicación para el aprovisionamiento de perfil, para, finalmente, el PEM. http://docs.moengage.com/docs/apns-certificate-pem- presentar

Yo sugeriría una solución mucho más sencilla. Sólo tiene que usar Certifire .
Certifire es una aplicación de MacOS que genera certificados de Apple Push Notification con sólo un clic en un par de segundos.

Estos son los pasos:
1. Descarga la aplicación.
2. iniciar sesión con sus credenciales de cuenta de desarrollador de Apple.
3. Elija la App-ID
4. Haga clic en "Generar" botón
5. Usted está!

Usted recibirá certificados de APN en formato .pem, así como en formato .p12. .pem aún más, obtendrá también combinado y también p.12 (tecla + cert)
Mucho más, obtendrá versiones sin frase de paso de todos estos certificados también!

introducir descripción de la imagen aquí

introducir descripción de la imagen aquí

Esta es la forma en que lo hice en Windows 7, después de instalar OpenSSL (enlace va a la Win32 instalador, seleccione la última versión y no la versión de la luz).

Con este método sólo necesita el archivo descargado .cer de Apple.

c:\OpenSSL-Win32\bin\openssl.exe x509 -in aps_development.cer -inform DER -out developer_identity.pem -outform PEM

Esto creará un archivo que a continuación, tendrá que añadir su clave privada también.

  

----- BEGIN PRIVATE KEY -----
  MIIEuwIBADANBgkqhk .... etc
  MIIEuwIBADANBgkqhk .... etc
  MIIEuwIBADANBgkqhk .... etc
  MIIEuwIBADANBgkqhk .... etc
  ----- ----- FIN CLAVE PRIVADA
  ----- BEGIN CERTIFICATE -----
  AwIBAgwIBADAwIBADA .... etc
  AwIBAgwIBADAwIBADA .... etc
  AwIBAgwIBADAwIBADA .... etc
  ----- END CERTIFICATE -----

Eso es todo.

NOTA: Debe tener el rol de Agente de equipo o Administrador en App Store Connect para realizar cualquiera de estas tareas.Si no eres parte de un equipo en App Store Connect, esto probablemente no te afecte.

Para enviar notificaciones automáticas a una aplicación de iOS es necesario crear claves de cifrado.En el pasado, este era un proceso engorroso que utilizaba claves y certificados SSL.Cada certificado SSL era específico para una única aplicación de iOS.En 2016, Apple introdujo un nuevo mecanismo de clave de autenticación que es más confiable y fácil de usar.Las nuevas claves de autenticación son más flexibles, fáciles de mantener y se aplican a más aplicaciones que en iOS.

Aunque han pasado años desde que se introdujeron las claves de autenticación, no todos los servicios las admiten.FireBase y Amazon Pinpoint admiten claves de autenticación.Amazon SNS, Urban Airship, Twilio y LeanPlum no lo hacen.Muchos paquetes de software de código abierto aún no admiten claves de autenticación.

Para crear el certificado SSL requerido y exportarlo como archivo PEM que contiene claves públicas y privadas:

  1. Navegue a Certificados, identificadores y perfiles
  2. Cree o edite su ID de aplicación.
  3. Habilite las notificaciones push para el ID de la aplicación
  4. Agregue un certificado SSL al ID de la aplicación
  5. Convertir el certificado al formato PEM

Si ya tiene el certificado SSL configurado para la aplicación en el sitio web del Centro de desarrolladores de Apple, puede pasar a Convertir el certificado al formato PEM. Tenga en cuenta que tendrá problemas si no lo hace. también tener la clave privada que se generó en la Mac que creó la solicitud de firma que se cargó en Apple.

Siga leyendo para ver cómo evitar perder la pista de esa clave privada.

Navegue a Certificados, identificadores y perfiles

Xcode no controla los certificados ni las claves para las notificaciones push.Para crear claves y habilitar notificaciones push para una aplicación, debe ir al sitio web del Centro de desarrolladores de Apple.La sección Certificados, identificadores y perfiles de su cuenta controla los ID y certificados de las aplicaciones.

Para acceder a certificados y perfiles, debe tener una membresía paga del Programa de desarrolladores de Apple o ser parte de un equipo que la tenga.

  1. Inicie sesión en el Sitio web para desarrolladores de Apple enter image description here
  2. Ir a Cuenta, entonces Certificados, identificadores y perfiles enter image description here

Crear una identificación de aplicación

Las aplicaciones que utilizan notificaciones automáticas no pueden utilizar ID de aplicación comodín ni perfiles de aprovisionamiento.Cada aplicación requiere que configure un registro de ID de aplicación en el portal del Centro de desarrolladores de Apple para habilitar las notificaciones automáticas.

  1. Ir a ID de aplicaciones bajo Identificadores
  2. Busque su aplicación utilizando el identificador del paquete.Puede que ya exista.
  3. Si no existe un ID de aplicación para la aplicación, haga clic en el botón (+) para crearla.
  4. Seleccionar ID de aplicación explícita en el ID de aplicación Sección de sufijos.enter image description here
  5. Ingrese el identificador del paquete para la aplicación.
  6. Desplácese hasta el final y habilite Notificaciones push. enter image description here
  7. Hacer clic Continuar.
  8. En la siguiente pantalla haga clic Registro para completar la creación del ID de la aplicación.enter image description here

Habilite las notificaciones push para el ID de la aplicación

  1. Ir a ID de aplicaciones bajo Identificadores
  2. Haga clic en el ID de la aplicación para ver los detalles y desplácese hasta el final.enter image description here
  3. Hacer clic Editar enter image description here
  4. En la pantalla Configuración de ID de aplicación, desplácese hacia abajo hasta Notificaciones push enter image description here
  5. Seleccione la casilla de verificación para habilitar las notificaciones automáticas.enter image description here

La creación de certificados SSL para notificaciones push es un proceso que consta de varias tareas.Cada tarea tiene varios pasos.Todos estos son necesarios para exportar las claves en formato P12 o PEM.Revise los pasos antes de continuar.

Agregue un certificado SSL al ID de la aplicación

  1. En Desarrollo de certificado SSL, haga clic Crear certificado.También deberá hacer esto más adelante para la producción.
  2. Apple le pedirá que cree una Solicitud de firma de certificadoenter image description here

Para crear un certificado, deberá realizar una Solicitud de firma de certificado (CSR) en una Mac y cargarla en Apple.

Más adelante, si necesita exportar este certificado como un archivo pkcs12 (también conocido como p12), deberá usar el llavero del misma Mac.Cuando se crea la solicitud de firma, Keychain Access genera un conjunto de claves en el llavero predeterminado.Estas claves son necesarias para trabajar con el certificado que Apple creará a partir de la solicitud de firma.

Es una buena práctica tener un llavero separado específicamente para las credenciales utilizadas para el desarrollo.Si hace esto, asegúrese de que este llavero esté configurado como predeterminado antes de usar el Asistente de Certificado.

Crear un llavero para credenciales de desarrollo

  1. Abre Acceso a Llaveros en tu Mac
  2. En el Archivo selección de menú Nuevo llavero...
  3. Dale a tu llavero un nombre descriptivo, como "Desarrollo compartido" o el nombre de tu aplicación.

Crear una solicitud de firma de certificado (CSR)

Al crear la Solicitud de firma de certificado, el Asistente de certificado genera dos claves de cifrado en el llavero predeterminado.Es importante hacer que el llavero de desarrollo sea el predeterminado para que las claves estén en el llavero correcto.

  1. Abre Acceso a Llaveros en tu Mac.
  2. Mantenga presionada la tecla Control y haga clic en el llavero de desarrollo en la lista de llaveros.
  3. Seleccionar Hacer que el llavero "Desarrollo compartido" sea el predeterminado enter image description here
  4. Desde el Acceso al llavero selección de menú Asistente de Certificado, entonces Solicitar un certificado de una autoridad certificadora... desde el submenú.enter image description here
  5. Cuando aparezca el Asistente de certificado, marque Guardado en el disco. enter image description here
  6. Ingrese la dirección de correo electrónico asociada con su membresía del Programa para desarrolladores de Apple en el Dirección de correo electrónico del usuario campo.
  7. Introduzca un nombre para la clave en el Nombre común campo.Es una buena idea utilizar el ID del paquete de la aplicación como parte del nombre común.Esto facilita saber qué certificados y claves pertenecen a cada aplicación.
  8. Haga clic en continuar.El Asistente de certificado le pedirá que guarde la solicitud de firma en un archivo.
  9. En Acceso a Llaveros, vuelva a establecer el llavero de "inicio de sesión" como predeterminado.

La creación de la solicitud de firma generó un par de claves.Antes de cargar la solicitud de firma, verifique que el llavero de desarrollo tenga las claves.Sus nombres serán los mismos que los Nombre común utilizado en la solicitud de firma.

enter image description here

Cargue la solicitud de firma de certificado (CSR)

Una vez creada la solicitud de firma de certificado, cárguela en el Centro de desarrolladores de Apple.Apple creará el certificado de notificación push a partir de la solicitud de firma.

  1. Cargue la solicitud de firma del certificado
  2. Descargue el certificado que Apple ha creado a partir de la Solicitud de firma de certificadoenter image description here
  3. En Acceso a Llaveros, seleccione el llavero de desarrollo de la lista de llaveros.
  4. Desde el Archivo selección de menú Importar artículos... enter image description here
  5. Importe el archivo de certificado descargado de Apple

Su llavero de desarrollo ahora debería mostrar el certificado push con una clave privada en Mis certificados en Acceso a Llaveros:

enter image description here

En este punto, se debe realizar una copia de seguridad del llavero de desarrollo.Muchos equipos guardan sus certificados push en unidades USB seguras, se comprometen con el control de versiones interno o utilizan una solución de respaldo como Time Machine.El llavero de desarrollo se puede compartir entre diferentes miembros del equipo porque no contiene ninguna credencial de firma de código personal.

Los archivos de llavero se encuentran en ~/Library/Keychains.

Algunos servicios push de terceros requieren certificados en formato de correo de privacidad mejorada (PEM), mientras que otros requieren los estándares de criptografía de clave pública n.º 12 (PKCS12 o P12).El certificado descargado de Apple se puede utilizar para exportar certificados en estos formatos, pero sólo si ha conservado la clave privada.

Convertir el certificado al formato PEM

  1. En Acceso a Llaveros, seleccione el llavero de desarrollo creado anteriormente.
  2. Seleccione el certificado push en Mis certificados.Debería haber una clave privada con él.![Descargar certificado push CER](llavero/importación completa.png)
  3. Desde el Archivo selección de menú Exportar artículos... enter image description here
  4. En el panel de guardar que se abre, seleccione Correo de privacidad mejorada (.pem) como formato de archivo.
  5. Guarda el archivo

Nunca Recuerdo el comando openssl necesaria para crear un archivo .pem, así que hice este script bash para simplificar el proceso:

#!/bin/bash
if [ $# -eq 2 ]
then
    echo "Signing $1..."

    if ! openssl pkcs12 -in $1 -out $2 -nodes -clcerts; then
        echo "Error signing certificate."
    else
        echo "Certificate created successfully: $2"
    fi
else
    if [ $# -gt 2 ]
    then
        echo "Too many arguments"
        echo "Syntax: $0 <input.p12> <output.pem>"
    else
        echo "Missing arguments"
        echo "Syntax: $0 <input.p12> <output.pem>"
    fi
fi

Nombre que, por ejemplo, signpem.sh y guardarlo en la carpeta de su usuario (/Users/<username>?). Después de crear el archivo, hacer una chmod +x signpem.sh para que sea ejecutable y luego se puede ejecutar:

~/signpem myCertificate.p12 myCertificate.pem

Y se creará myCertificate.pem.

Hay una manera más fácil de crear el archivo .PEM si ya ha APN archivo de p12 en el acceso del llavero.

Abrir el terminal y escriba el siguiente comando:

Para Devlopment openssl pkcs12 -en APNs-div-cert.p12 salida privado APNs-div-cert.pem -nodes -clcerts

Para Producción openssl pkcs12 -en APNs-dist-cert.p12 salida privado APNs-dist-cert.pem -nodes -clcerts

Cambiar el nombre de su archivo P12 con este nombre: APN-div-cert.p12 lo contrario en lugar de ello, tiene que introducir su nombre de archivo. Gracias !!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top