Skip to content

Instantly share code, notes, and snippets.

@elikohen
Last active June 27, 2016 14:08
Show Gist options
  • Save elikohen/8786225 to your computer and use it in GitHub Desktop.
Save elikohen/8786225 to your computer and use it in GitHub Desktop.
iOS Push Notifications + p12 certificate

#iOS Push notifications

Seguir el manual de Ray wenderlich: http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

  • En el momento que generas un CertificateSigningRequest.certSigningRequest NO LO BORRES! lo necesitarás mas adelante.
  • Cuando llegues a "Making a PEM file" para, nuestro servidor java requiere un p12 y no un pem. Esa sección la sustituiremos por nuestro "Generar p12 file" indicado a continuación

##Generar p12 file

Nuestro servidor requiere el certificado + la llave en un formato especial p12, que no es el que se genera exportando la llave junto al certificado desde el keychain.

Seguir los siguientes pasos:

  1. Convertir apn_developer_identity.cer (el certificado de push que generaste en el developer portal, está en formato DER) a pem.

     openssl x509 -in apn_developer_identity.cer -inform DER -out apn_developer_identity.pem -outform PEM
    
  2. Extraer y convertir la clave privada del certificado a pem.

    1. Haz doble click en el certificado bajado del developer portal (no hace falta pero de esta forma encontraremos la key de forma rápida y nos aseguraremos de que es esa).

    2. Cuando aparezca la applicación del keychain verás el certificado y si lo despliegas una llave asociada.

    3. Exportar la llave asociada al certificado, como un p12, pon la misma clave que estas usando. Usaremos el nombre private_dev_key.p12

    4. Ya puedes borrar el certificado, no lo necesitarás en el sistema (ojo, solo el certificado, no la llave, quizá la tienes que volver a exportar en otro momento).

    5. Convertimos la clave exportada a un formato pem:

       openssl pkcs12 -nocerts -out private_dev_key.pem -in private_dev_key.p12
      
  3. Generamos el p12 que contiene tanto el certificado, como el request como la llave. El CertificateSigningRequest.certSigningRequest es el que usaste para generar el certificado siguiendo el manual.

     openssl pkcs12 -export -in aps_developer_identity.pem -out aps_developer_identity.p12 -inkey private_key.pem
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment