Générer un fichier .pem utilisé pour configurer les notifications push Apple

290

J'ai essayé et essayé de générer un fichier .pem, générant à chaque fois des certificats à partir du compte du client, puis générant le fichier .pem à l'aide du terminal, mais cela ne sert à rien. Quelqu'un peut-il donner une procédure étape par étape?

Parikh dur
la source

Réponses:

936

Pour activer la notification push pour votre application iOS, vous devrez créer et télécharger le certificat de notification push Apple (fichier .pem) afin que nous puissions nous connecter à Apple Push Server en votre nom.

( Version mise à jour avec captures d'écran mises à jour ici )

Étape 1: Connectez-vous à iOS Provisioning Portal, cliquez sur "Certificats" dans la barre de navigation de gauche. Cliquez ensuite sur le bouton "+".

entrez la description de l'image ici

Étape 2: Sélectionnez l'option Apple Push Notification service SSL (Production) dans la section Distribution, puis cliquez sur le bouton "Continuer".

entrez la description de l'image ici

Étape 3: Sélectionnez l'ID d'application que vous souhaitez utiliser pour votre application BYO (Comment créer un ID d'application), puis cliquez sur «Continuer» pour passer à l'étape suivante.

entrez la description de l'image ici

Étape 4: Suivez les étapes «À propos de la création d'une demande de signature de certificat (CSR)» pour créer une demande de signature de certificat.

entrez la description de l'image ici

Pour compléter les instructions fournies par Apple. Voici quelques captures d'écran supplémentaires pour vous aider à effectuer les étapes requises:

Étape 4 Capture d'écran supplémentaire 1: Accédez à l'Assistant Certificat de l'accès au trousseau sur votre Mac.

entrez la description de l'image ici

Étape 4 Capture d'écran supplémentaire 2: Remplissez les informations du certificat. Cliquez sur Continuer.

entrez la description de l'image ici

Étape 5: Téléchargez le fichier ".certSigningRequest" qui est généré à l'étape 4, puis cliquez sur le bouton "Générer".

entrez la description de l'image ici

Étape 6: Cliquez sur "Terminé" pour terminer l'enregistrement, la page du portail de provisioning iOS sera actualisée, qui ressemble à l'écran suivant:

entrez la description de l'image ici

Cliquez ensuite sur le bouton "Télécharger" pour télécharger le certificat (fichier .cer) que vous venez de créer. - Double-cliquez sur le fichier téléchargé pour installer le certificat dans Keychain Access sur votre Mac.

Étape 7: Sur votre Mac, allez dans "Porte-clés", recherchez le certificat que vous venez d'installer. Si vous ne savez pas quel certificat est le bon, il doit commencer par "Apple Production IOS Push Services:" suivi de l'ID de l'ensemble de votre application.

entrez la description de l'image ici

Étape 8: Développez le certificat, vous devriez voir la clé privée avec votre nom ou le nom de votre entreprise. Sélectionnez les deux éléments en utilisant la touche "Sélectionner" de votre clavier, faites un clic droit (ou cliquez avec le bouton cmd si vous utilisez un seul bouton de souris), choisissez "Exporter 2 éléments", comme ci-dessous:

entrez la description de l'image ici

Ensuite, enregistrez le fichier p12 avec le nom "pushcert.p12" sur votre bureau - maintenant, vous serez invité à entrer un mot de passe pour le protéger, vous pouvez soit cliquer sur Entrée pour ignorer le mot de passe, soit entrer le mot de passe souhaité.

Étape 9: Maintenant, la partie la plus difficile - ouvrez "Terminal" sur votre Mac et exécutez les commandes suivantes:

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

Étape 10: supprimez pushcert.p12 du bureau pour éviter de le télécharger dans la zone Build Your Own. Ouvrez "Terminal" sur votre Mac et exécutez les commandes suivantes:

cd
cd Desktop
rm pushcert.p12

Étape 11 - NOUVELLE MISE À JOUR AWS: Créez une nouvelle pushcert.p12à soumettre à AWS SNS. Double-cliquez sur le nouveau pushcert.pem, puis exportez celui en surbrillance uniquement sur le vert.

entrez la description de l'image ici Crédit: nouvelle mise à jour AWS

Vous venez de créer un certificat de notification push Apple (fichier .p12)! Vous devrez télécharger ce fichier ultérieurement dans notre zone Build Your Own. :)

Ravi_Parmar
la source
11
On dirait que vous pouvez maintenant exporter directement du trousseau vers un fichier PEM (étapes 8 à 10).
Kyle Clegg
10
@KyleClegg: comment?
eugene
3
Qu'est-ce que la zone "Build Your Own" et pourquoi devons-nous y télécharger le fichier pem?
Rafi
1
pourquoi toutes ces réponses sur Internet ignorent-elles la vraie question constamment posée sur ce qu'est le «Build Your Own»? Où téléchargez-vous ce PEM si vous utilisez Xcode?
RobertyBob
1
Dans mon cas, j'avais besoin de créer deux fichiers pem à partir du certificat p12. Il suffit d'exporter respectivement le certificat et le fichier de clés dans l'accès au trousseau au lieu d'exporter 2 éléments ensemble. Mais cette réponse est vraiment géniale!
wei
79

Il existe aujourd'hui une solution beaucoup plus simple - pem . Cet outil rend la vie beaucoup plus facile.

Par exemple, pour générer ou renouveler votre certificat de notification push, entrez simplement:

fastlane pem 

et c'est fait en moins d'une minute. Si vous avez besoin d'un certificat sandbox, entrez:

fastlane pem --development

Et c'est joli.

mikejd
la source
9
Et il n'y a pas que PEM. L'ensemble de l'outil Fastlane est absolument brillant
Benjamin
Est-il également disponible pour les systèmes autres que Apple?
deux fois
@KrauseFx, si je le génère via pem, comment le faire apparaître ici: developer.apple.com/account/ios/certificate ? Je trouve cela très utile pour voir la dernière date d'expiration, etc.? Est-ce quelque chose qui se produit automatiquement?
IonicBurger
1
@Nikola Aucune action sur iTunes Connect requise, vous pouvez utiliser ce fichier pem tout de suite
KrauseFx
1
@mikejd nous n'avons pas besoin de spécifier quel p12 doit être utilisé pour pem?
Maulik
10
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
Ahmed Abdallah
la source
Est-ce que ça marche? J'ai créé un fichier PEM sur Windows 10 en utilisant cette méthode, mais j'ai obtenu un «Impossible de se connecter à 'ssl: \ / \ / gateway.sandbox.push.apple.com» lorsque j'utilise le pem généré pour envoyer des notifications push.
Arivan Bastos
3

Apple a changé le nom du certificat émis. Vous pouvez désormais utiliser le même certificat pour le développement et la production. Bien que vous puissiez toujours demander un certificat de développement uniquement, vous ne pouvez plus demander un certificat de production uniquement.

s'il vous plaît voir ci-dessous un aperçu

Hardik Bar
la source
1

c'est très simple après avoir exporté le Cert.p12 et key.p12, Veuillez trouver ci-dessous la commande pour générer le fichier '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

La commande ci-dessus est utile à la fois pour Sandbox et Production.

Ilesh P
la source
1

Selon Dépannage des problèmes de certificat push

Le certificat SSL disponible dans votre compte Apple Developer Program contient une clé publique mais pas une clé privée. La clé privée existe uniquement sur le Mac qui a créé la demande de signature de certificat téléchargée sur Apple. Les clés publiques et privées sont nécessaires pour exporter le fichier PEM (Privacy Enhanced Mail).

Les raisons pour lesquelles vous ne pouvez pas exporter un PEM fonctionnel à partir du certificat fourni par le client sont que vous n'avez pas la clé privée. Le certificat contient la clé publique, tandis que la clé privée n'existe probablement que sur le Mac qui a créé la CSR d'origine.

Tu peux soit:

  1. Essayez d'obtenir la clé privée du Mac qui a initialement créé la CSR. L'exportation du PEM peut être effectuée à partir de ce Mac ou vous pouvez copier la clé privée sur un autre Mac.

ou

  1. Créez une nouvelle CSR, un nouveau certificat SSL et cette fois sauvegardez la clé privée.
quellish
la source
0

Merci! à toutes les réponses ci-dessus. J'espère que vous avez un fichier .p12. Maintenant, ouvrez la commande suivante d'écriture de terminal. Réglez le terminal sur le chemin où vous avez placé le fichier .12.

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

Votre fichier .pem est maintenant généré.

Vérifier le fichier .pem Tout d'abord, ouvrez le .pem dans un éditeur de texte pour afficher son contenu. Le contenu du certificat doit être au format indiqué ci-dessous. Assurez-vous que le fichier pem contient à la fois le contenu du certificat (de BEGIN CERTIFICATE à END CERTIFICATE) ainsi que la clé privée de certificat (de BEGIN PRIVATE KEY à 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-----

En outre, vous vérifiez la validité du certificat en allant dans SSLShopper Certificate Decoder et collez le contenu du certificat (de BEGIN CERTIFICATE à END CERTIFICATE) pour obtenir toutes les informations sur le certificat, comme indiqué ci-dessous:

entrez la description de l'image ici

Gurjinder Singh
la source