web-dev-qa-db-fra.com

Créer un fichier .pem pour APNS?

Comment créer un fichier .pem à stocker sur le serveur d'hébergement pour les données utiles APN?

170
Biranchi

Voici ce que j'ai fait, de: blog.boxedice.com et "iPhone Advanced Projects" chapitre 10 de Joe Pezzillo.

Avec aps_developer_identity.cer dans le trousseau:

  1. Lancez Keychain Access depuis votre Mac local et à partir du trousseau de connexion, filtrez-le en fonction de la catégorie Certificats. Vous verrez une option extensible appelée "Services Apple Development Push".
  2. Cliquez avec le bouton droit de la souris sur "Services Apple Development Push"> Exporter "Services ID90 de développement Apple". Enregistrez ceci en tant que fichier apns-dev-cert.p12 où vous pourrez y accéder. Il n'est pas nécessaire d'entrer un mot de passe.
  3. La commande suivante génère le certificat dans le format Mac for Terminal for PEM (certificat de sécurité renforcée pour la messagerie):

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

Sur le serveur, définissez l'autorisation de fichier de cette clé non chiffrée à l'aide de chmod 400.

344
zaph

Phase de développement:

Étape 1: Créer un certificat .pem à partir d'un certificat .p12
Commande: openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

Étape 2: Créez la clé .pem à partir de la clé .p12
Commande: openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

Étape 3: Facultatif (Si vous souhaitez supprimer la phrase de passe demandée à la deuxième étape)
Commande: openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

Étape 4: Maintenant, nous devons fusionner la clé .pem et le certificat .pem pour obtenir le développement .pem nécessaire aux notifications push en phase de développement de l'application
Commande: cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem (If 3rd step is performed )

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

Étape 5: Vérifier la validité du certificat et la connectivité à APNS
Commande: 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 )
Commande: openssl s_client -connect gateway.sandbox.Push.Apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem (If performed )

Phase de production:

Étape 1: Créer un certificat .pem à partir d'un certificat .p12
Commande: openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12

Étape 2: Créez la clé .pem à partir de la clé .p12
Commande: openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12

Étape 3: Facultatif (Si vous souhaitez supprimer la phrase de passe demandée à la deuxième étape)
Commande: openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem

Étape 4: Nous devons maintenant fusionner la clé .pem et le certificat .pem pour obtenir le fichier .pem de production nécessaire aux notifications push en phase de production de l'application.
Commande: cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem (If 3rd step is performed ) Commande: cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem (if not)

Étape 5: Vérifier la validité du certificat et la connectivité à APNS
Commande: 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 )
Commande: openssl s_client -connect gateway.Push.Apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem (si exécuté)

210
Ashish Chhabra

Pas:

  1. Créer une CSR à l'aide d'un accès par chaîne de clés
  2. Créer un P12 à l'aide d'un accès par chaîne de clés à l'aide d'une clé privée
  3. APNS App ID et certificat

Cela vous donne trois fichiers:

  • La RSE
  • La clé privée sous forme de fichier p12 (PushChatKey.p12)
  • Le certificat SSL, aps_development.cer

Allez dans le dossier où vous avez téléchargé les fichiers, dans mon cas, le bureau:

$ cd ~/Desktop/

Convertissez le fichier .cer en fichier .pem:

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

Convertissez le fichier .p12 de la clé privée en fichier .pem:

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

Entrez le mot de passe d'importation:

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

Vous devez d’abord entrer la phrase secrète du fichier .p12 pour qu’elle puisse être lue par openssl. Ensuite, vous devez entrer une nouvelle phrase secrète qui sera utilisée pour chiffrer le fichier PEM. Encore une fois pour ce tutoriel, j’ai utilisé "pushchat" comme mot de passe PEM. Vous devriez choisir quelque chose de plus sécurisé. Remarque: si vous n’entrez pas de phrase de passe PEM, openssl ne donnera pas de message d’erreur mais le fichier .pem généré ne contiendra pas la clé privée.

Enfin, combinez le certificat et la clé dans un seul fichier .pem:

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

57
sarit bahuguna

Lancez le application Terminal et entrez la commande suivante après l'invite

  openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes
20
Durai Amuthan.H

- >> le propre tutoriel d'Apple << - est le seul ensemble d'instructions qui fonctionne que j'ai rencontré. C'est simple et je peux confirmer que cela fonctionne à merveille sur un serveur Linux Linux et un serveur Windows PHP.

Vous trouverez leur processus de création de pem en 5 étapes au bas de la page.

10
capikaw

Vous pouvez jeter un oeil ici. Le processus détaillé décrit avec les images, de la création du certificat à la clé d'application du profil d'approvisionnement, en passant par le pem. http://docs.moengage.com/docs/apns-certificate-pem-file

4
Gautam Jain

Je suggérerais une solution beaucoup plus simple. Il suffit d'utiliser Certifire .
Certifire est une application MacOS qui génère Apple Certificats de notification Push en un seul clic en quelques secondes.

Voici les étapes:
1. Téléchargez l'application.
2. Connectez-vous à l'aide de vos informations d'identification Apple Compte de développeur.
3. Choisissez l'app-ID
4. Cliquez sur le bouton "Générer"
5. Vous avez terminé!

Vous obtiendrez des certificats APN au format .pem ainsi qu'au format .p12. Encore plus, vous obtiendrez également les fichiers .pem et .p12 combinés (clé + cert)!
Bien plus, vous obtiendrez également des versions sans phrase secrète de tous ces certificats!

enter image description here

enter image description here

3
arturdev

Voici comment je l’ai fait sous Windows 7, après l’installation de OpenSSL (le lien mène au programme d’installation Win32, choisissez la version la plus récente et non la version allégée).

Avec cette méthode, vous n'avez besoin que du fichier .cer téléchargé à partir d'Apple.

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

cela créera un fichier sur lequel vous devrez également ajouter votre clé privée.

----- COMMENCER LA CLÉ PRIVÉE -----
MIIEuwIBADANBgkqhh ... etc
MIIEuwIBADANBgkqhh ... etc
MIIEuwIBADANBgkqhh ... etc
MIIEuwIBADANBgkqhh ... etc
----- FIN DE LA CLE PRIVEE -----
----- DÉBUT DU CERTIFICAT -----
AwIBAgwIBADAwIBADA .... etc
AwIBAgwIBADAwIBADA .... etc
AwIBAgwIBADAwIBADA .... etc
----- CERTIFICAT DE FIN -----

C'est ça.

2
Rots

REMARQUE: Vous devez disposer du rôle Agent d'équipe ou Administrateur dans App Store Connect pour effectuer l'une de ces tâches. Si vous ne faites pas partie d'une équipe dans App Store Connect, cela ne vous concerne probablement pas.

L'envoi de notifications Push à une application iOS nécessite la création de clés de cryptage. Auparavant, il s'agissait d'un processus fastidieux utilisant des clés et des certificats SSL. Chaque certificat SSL était spécifique à une seule application iOS. En 2016, Apple a introduit un nouveau mécanisme de clé d'authentification, plus fiable et plus facile à utiliser. Les nouvelles clés d'authentification sont plus flexibles, faciles à gérer et à appliquer à d'autres applications que sur l'application iOS.

Même si cela fait des années que les clés d'authentification ont été introduites, tous les services ne les prennent pas en charge. FireBase et Amazon Pinpoint prennent en charge les clés d'authentification. Amazon SNS, Urban Airship, Twilio et LeanPlum ne le font pas. De nombreux packages logiciels open source ne prennent pas encore en charge les clés d'authentification.

Pour créer le certificat SSL requis et l'exporter sous forme de fichier PEM contenant des clés publique et privée:

  1. Accédez aux certificats, identifiants et profils
  2. Créez ou modifiez votre identifiant d'application.
  3. Activer les notifications push pour l'ID d'application
  4. Ajouter un certificat SSL à l'ID de l'application
  5. Convertir le certificat au format PEM

Si le certificat SSL est déjà configuré pour l'application sur le site Web Apple Developer Center, vous pouvez passer directement à la conversion du certificat au format PEM. N'oubliez pas que vous rencontrerez des problèmes si vous ne possédez pas également la clé privée générée sur le Mac qui a créé la demande de signature chargée sur Apple .

Lisez la suite pour savoir comment éviter de perdre la trace de cette clé privée.

Accédez aux certificats, identifiants et profils

Xcode ne contrôle pas les certificats ou les clés pour les notifications Push. Pour créer des clés et activer les notifications Push pour une application, vous devez aller sur le site Web Apple Developer Center. La section Certificats, identifiants et profils de votre compte contrôle les identifiants d'applications et les certificats.

Pour accéder aux certificats et aux profils, vous devez soit être membre du programme pour développeurs Apple, soit faire partie d'une équipe.

  1. Connectez-vous à la site Web des développeurs Appleenter image description here
  2. Allez sur compte , puis certificats, identifiants et profils enter image description here

Créer un identifiant d'application

Les applications qui utilisent des notifications Push ne peuvent pas utiliser d'ID d'application génériques ni de profils de provisioning. Pour chaque application, vous devez configurer un enregistrement d'identifiant d'application dans le portail Apple Developer Center afin d'activer les notifications Push.

  1. Allez à ID d'application sous Identifiants
  2. Recherchez votre application à l'aide de l'identificateur de paquet. Cela peut déjà exister.
  3. S'il n'y a pas d'identifiant d'application existant pour l'application, cliquez sur le bouton (+) pour le créer.
  4. Sélectionnez ID d'application explicite dans la section ID d'application . enter image description here
  5. Entrez l'identifiant de l'ensemble pour l'application.
  6. Faites défiler vers le bas et activez les notifications push . enter image description here
  7. Cliquez sur Continuer .
  8. Sur l'écran suivant, cliquez sur Inscrivez-vous pour terminer la création de l'identifiant de l'application. enter image description here

Activer les notifications push pour l'ID d'application

  1. Allez à ID d'application sous Identifiants
  2. Cliquez sur l'ID de l'application pour voir les détails et défiler vers le bas. enter image description here
  3. Cliquez sur Modifier enter image description here
  4. Dans l’écran App ID Settings, faites défiler jusqu’à notifications push enter image description here
  5. Cochez la case pour activer les notifications Push. enter image description here

La création de certificats SSL pour les notifications Push est un processus composé de plusieurs tâches. Chaque tâche comporte plusieurs étapes. Tous ces éléments sont nécessaires pour exporter les clés au format P12 ou PEM. Passez en revue les étapes avant de continuer.

Ajouter un certificat SSL à l'ID de l'application

  1. Sous Certificat de développement SSL, cliquez sur Créer un certificat . Vous devrez également le faire plus tard pour la production.
  2. Apple vous demandera de créer une demande de signature de certificat enter image description here

Pour créer un certificat, vous devez créer une demande de signature de certificat (CSR) sur un Mac et le télécharger sur Apple.

Plus tard, si vous devez exporter ce certificat sous forme de fichier pkcs12 (également appelé p12), vous devrez utiliser le trousseau de clés du même Mac . Lorsque la demande de signature est créée, Keychain Access génère un ensemble de clés dans le trousseau par défaut. Ces clés sont nécessaires pour utiliser le certificat que Apple créera à partir de la demande de signature.

Il est recommandé d’avoir un trousseau distinct pour les informations d’identité utilisées pour le développement. Si vous procédez ainsi, assurez-vous que ce trousseau est défini par défaut avant d'utiliser Assistant de certificat.

Créer un trousseau pour les informations d'identification de développement

  1. Ouvrez Keychain Access sur votre Mac
  2. Dans le menu Fichier , sélectionnez Nouveau trousseau ...
  3. Donnez à votre trousseau un nom descriptif, tel que "Développement partagé" ou le nom de votre application.

Créer une demande de signature de certificat (CSR)

Lors de la création de la demande de signature de certificat, l'Assistant de certificat génère deux clés de chiffrement dans le trousseau par défaut. Il est important de faire du trousseau de développement la valeur par défaut afin que les clés se trouvent dans le bon trousseau.

  1. Ouvrez Keychain Access sur votre Mac.
  2. Contrôle-cliquez sur le trousseau de développement dans la liste des trousseaux
  3. Sélectionnez Définir le trousseau "Développement partagé" par défaut enter image description here
  4. Dans le menu du trousseau d’accès , sélectionnez Assistant de certification , puis Demander un certificat à une autorité de certification ... dans le sous-menu. enter image description here
  5. Lorsque l'Assistant de certificat apparaît, cochez Enregistré sur disque . enter image description here
  6. Entrez l'adresse électronique associée à votre adhésion au programme pour développeurs Apple dans le champ Adresse électronique de l'utilisateur .
  7. Entrez un nom pour la clé dans le champ Nom commun . C'est une bonne idée d'utiliser l'ID de bundle de l'application dans le nom commun. Cela permet de savoir facilement quels certificats et clés appartiennent à quelle application.
  8. Cliquez sur Continuer. L’assistant de certificat vous invitera à enregistrer la demande de signature dans un fichier.
  9. Dans Accès au trousseau, définissez à nouveau le trousseau "Connexion" par défaut.

La création de la demande de signature a généré une paire de clés. Avant que la demande de signature ne soit téléchargée, vérifiez que le trousseau de développement contient les clés. Leurs noms seront les mêmes que le nom commun utilisé dans la demande de signature.

enter image description here

Télécharger la demande de signature de certificat (CSR)

Une fois la demande de signature de certificat créée, chargez-la dans le Apple Developer Center. Apple créera le certificat de notification Push à partir de la demande de signature.

  1. Télécharger la demande de signature de certificat
  2. Téléchargez le certificat que Apple a créé à partir de la demande de signature de certificat enter image description here
  3. Dans Accès au trousseau, sélectionnez le trousseau de développement dans la liste des trousseaux.
  4. Dans le menu Fichier , sélectionnez Importer les éléments ... enter image description here
  5. Importer le fichier de certificat téléchargé à partir d'Apple

Votre trousseau de développement doit maintenant afficher le certificat Push avec une clé privée sous Mes certificats dans Accès trousseau:

enter image description here

À ce stade, le trousseau de développement doit être sauvegardé. De nombreuses équipes conservent leurs certificats Push sur des lecteurs USB sécurisés, s'engagent dans un contrôle de version interne ou utilisent une solution de sauvegarde telle que Time Machine. Le trousseau de développement peut être partagé entre différents membres de l'équipe car il ne contient pas d'informations d'identification de signature de code personnel.

Les fichiers de trousseau se trouvent dans ~/Library/Keychains.

Certains services Push tiers nécessitent des certificats au format PEM (Privacy Enhanced Mail), tandis que d'autres requièrent les normes de cryptographie à clé publique n ° 12 (PKCS12 ou P12). Le certificat téléchargé à partir de Apple peut être utilisé pour exporter des certificats dans ces formats, mais uniquement si vous avez conservé la clé privée.

Convertir le certificat au format PEM

  1. Dans Accès au trousseau, sélectionnez le trousseau de développement créé précédemment.
  2. Sélectionnez le certificat Push dans Mes certificats . Il devrait y avoir une clé privée avec elle. ! [Télécharger le certificat CER Push] (porte-clés/import complete.png)
  3. Dans le menu Fichier , sélectionnez Exporter les éléments ... enter image description here
  4. Dans le panneau de sauvegarde qui s'ouvre, sélectionnez la messagerie enrichie pour la confidentialité (.pem) comme format de fichier.
  5. Sauvegarder le fichier
2
quellish

Je ne me souviens jamais de la commande openssl nécessaire pour créer un fichier .pem. J'ai donc créé ce script bash pour simplifier le processus:

#!/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

Nommez-le, par exemple, signpem.sh et enregistrez-le dans le dossier de votre utilisateur (/Users/<username>?). Après avoir créé le fichier, effectuez un chmod +x signpem.sh pour le rendre exécutable, puis exécutez:

~/signpem myCertificate.p12 myCertificate.pem

Et myCertificate.pem sera créé.

1
Alejandro Iván

Il existe un moyen plus simple de créer un fichier .Pem si vous avez déjà un fichier apns p12 dans votre accès à la chaîne de clés.

Ouvrez le terminal et entrez la commande ci-dessous:

pour le développement openssl pkcs12 -in apns-div-cert.p12 -out apns-div-cert.pem -nodes -clcerts

Pour la production openssl pkcs12 -in apns-dist-cert.p12 -out apns-dist-cert.pem -nodes -clcerts

Renommez votre fichier P12 avec le nom suivant: apns-div-cert.p12 sinon vous devez entrer votre nom de fichier. Merci!!

1
Yash