Comment créer un fichier .pem à stocker sur le serveur d'hébergement pour les données utiles APN?
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:
apns-dev-cert.p12
où vous pourrez y accéder. Il n'est pas nécessaire d'entrer un mot de passe.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.
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é)
Pas:
Cela vous donne trois fichiers:
PushChatKey.p12
)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
Lancez le application Terminal et entrez la commande suivante après l'invite
openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes
- >> 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.
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
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!
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
Votre trousseau de développement doit maintenant afficher le certificat Push avec une clé privée sous Mes certificats dans Accès trousseau:
À 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.
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éé.
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!!