Comment créer un certificat P12 pour la distribution iOS

104

Nous avons une application iOS dont le certificat de notification push a expiré et nous essayons d'en créer une nouvelle. J'ai créé de nouveaux certificats dans le portail Provisioning (ios_developer.cer, ios_distribution.cer) et les ai téléchargés. Je suivais les instructions ici sur Stack Overflow pour le convertir en fichiers PEM, puis en fichiers P12, mais je suis bloqué. Quand j'essaye ensuite de convertir le PEM en P12, il veut une clé privée d'une sorte, et je ne sais pas où l'obtenir.

J'ai également essayé de les charger dans Keychain Access. J'avais lu que vous pouviez les exporter en tant que P12 à partir de là, mais lorsque je fais l'importation, ils n'apparaissent nulle part.

RobG
la source

Réponses:

127

Votre clé privée est générée lorsque vous avez créé la demande de signature dans Keychain Access. Une fois le certificat généré et téléchargé, double-cliquez dessus pour l'ajouter à Keychain Access où il sera associé à la clé privée. Vous pouvez ensuite sélectionner le certificat et ouvrir la flèche pour sélectionner également la clé privée et les exporter ensemble sous forme de fichier .p12 à partir de Keychain Access.

Picciano
la source
12
Ça ne fait rien; deviner. Pas étonnant que les gens aient de tels problèmes avec ça ... c'est déroutant!
RobG
14
Ce serait bien mais p12 est grisé pour moi :(
Rob
14
@Rob vous devez sélectionner la clé privée et non le certificat entier. Dans les porte-clés en haut à gauche, sélectionnez "Connexion", puis en dessous dans la catégorie, sélectionnez "certificats", vous verrez que le certificat a une flèche de baisse maintenant, cliquez dessus et la clé privée affichera un clic droit et exportera le chapeau en tant que .p12
tutts
6
Je n'obtiens pas non plus l'option déroulante. J'ai double-cliqué sur le certificat après le téléchargement, et il apparaît dans le trousseau de connexion, mais pas sous la clé privée. Je ne le vois que sous Certificats, il n'y a aucun lien entre la clé et le certificat que je peux voir.
setherj
6
pareil ici. Pas de liste déroulante, p12 grisé
trainoasis
76

Les fichiers .p12 sont utilisés pour publier l'application sur l'App Store d'Apple

A. Créez un fichier CSR (.certSigningRequest)

  1. Ouvrir l' accès au trousseau à partir des utilitaires
  2. Dans la barre d'outils Accès au trousseau, sélectionnez Accès au trousseau -> Préférences
  3. Dans la fenêtre contextuelle, sélectionnez l' onglet Certificats
  4. Réglez à la fois «Protocole d'état du certificat en ligne» et «Liste de révocation de certificat» sur «Non»
  5. Ferme cette fenêtre
  6. Maintenant, à partir de la barre d'outils, ouvrez Accès au trousseau> Assistant de certificat> Demander un certificat à une autorité de certification
  7. Saisissez l'adresse e-mail et le nom commun que vous avez utilisés pour vous inscrire au programme pour développeurs iOS
  8. Laissez l'adresse e-mail CA vide et sélectionnez "Enregistré sur le disque" et "Permettez-moi de spécifier les informations de la paire de clés"
  9. Cliquez sur Continuer
  10. Choisissez un nom de fichier et une destination sur votre disque dur
  11. Cliquez sur Enregistrer
  12. Dans la fenêtre suivante, définissez la valeur "Taille de clé" sur "2048 bits"
  13. Réglez «Algorithme» sur «RSA»
  14. Cliquez sur Continuer

Cela créera et enregistrera votre fichier certSigningRequest (CSR) sur votre disque dur. Une clé publique et privée sera également créée dans Keychain Access avec le nom commun saisi.

B. Créer un fichier ".cer" dans le compte développeur iOS

  1. Connectez-vous au compte de développeur Apple Cliquez sur "Certificats, identifiants et profils"
  2. Cliquez sur "Provisioning Profiles"
  3. Dans la section «Certificats», cliquez sur «Production»
  4. Cliquez sur le bouton «Ajouter» (+) en haut à droite du panneau principal
  5. Maintenant, choisissez "App Store et Ad Hoc"
  6. Cliquez sur Continuer
  7. Cliquez sur "Choisir un fichier" et recherchez le fichier CSR que vous avez créé à partir de votre disque dur
  8. Cliquez sur Générer
  9. Cliquez sur Télécharger pour obtenir le fichier

C. Installez .cer et générez le certificat .p12

  1. Trouver fichier .cer que vous avez téléchargé et double-cliquez
  2. Définissez la liste déroulante de connexion sur «connexion» et cliquez sur Ajouter
  3. Ouvrez KeyChain Access et vous trouverez le profil créé à l'étape A
  4. Vous pouvez développer le profil «clé privée» (affiche le certificat que vous avez ajouté)
  5. Sélectionnez uniquement ces deux éléments (pas la clé publique)
  6. Faites un clic droit et cliquez sur "Exporter 2 éléments…" dans la fenêtre contextuelle
  7. Assurez-vous maintenant que le format de fichier est «.p12» et choisissez le nom de fichier et la destination sur votre disque dur
  8. Cliquez sur Enregistrer. Maintenant, vous serez invité à définir un mot de passe, mais laissez ces deux vides
  9. Cliquez sur OK. Maintenant, vous avez un fichier .p12 sur votre disque dur

Notez que si le problème persiste, essayez également l'étape ci-dessous:

Si votre trousseau est présent dans iCloud, supprimez tout le contenu du trousseau d'iCloud et effectuez une nouvelle configuration dans iCloud. Cela devrait fonctionner.

Jayprakash Dubey
la source
J'ai accidentellement supprimé ma chaîne de clé privée. alors maintenant je ne peux pas voir la clé privée ci-dessous le certificat. J'ai un fichier CSR, comment réinstaller la clé privée à partir de CSR?
Avijit Nagare
1
J'ai eu beaucoup de mal à comprendre le processus Apple pour générer un fichier .p12 car je suis un gars de Windows Phone et cet article m'a vraiment aidé à le comprendre.
Mohammed Aamir K
1
Instructions très utiles. Merci beaucoup. Cela a fait gagner beaucoup de temps.
Alix
Pourquoi désactiver le «Protocole d'état du certificat en ligne» et l'autre?
Nate
1
J'ai résolu ce problème. Pour vous expliquer ce que j'ai fait: assurez-vous que votre trousseau n'apparaît pas dans iCloud. Une fois qu'il est là, il y a un risque que vous rencontriez le problème ci-dessus. J'ai tout désinstallé, fait une nouvelle configuration sans utiliser les données de mon iCloud, puis cela a fonctionné.
Nazar Medeiros
32

OK, problème résolu! il semble que lorsque je double-clique sur le certificat, il l'installe automatiquement dans le trousseau SYSTEM - je ne sais pas pourquoi. Donc, à la place, je fais simplement glisser et déposer le certificat dans le trousseau LOGIN et tout va bien. Merci à cet article -> Ajouter des certificats au trousseau et générer le format de fichier .p12 - alon rosenfeld il y a 10 mois

Abraham Lopez
la source
1
Oh wow. J'ai passé des heures à essayer de comprendre cela. J'aurais perdu une semaine de plus sans cette réponse.
B Seven
1
Merci beaucoup. J'ai perdu des heures à essayer de comprendre cela.
SaltedBlowfish
1
Oui, des heures perdues, sauvées :)
Sahan
29

vous n'obtiendrez pas l'option d'extension sauf si vous filtrez en choisissant (Certificats) dans le coin inférieur gauche du porte-clés

albaiti
la source
4

Pour obtenir votre fichier p12, procédez de cette façon.

Étape 1. Dans XCode > Aller à Paramètres du projet > Général > Signature section> certificat de signature

Voir quel certificat vous utilisez pour cette application particulière, comme indiqué dans l'image ci-dessous

entrez la description de l'image ici

Étape 2. Ouvrez le trousseau > dans la section Catégorie en bas à gauche > Certificats

Recherchez le certificat et ouvrez l'enfant en cliquant sur la flèche vers le bas comme indiqué dans l'image

entrez la description de l'image ici

Étape 3. Faites un clic droit et exportez en tant que "Certificates.p12" en donnant votre mot de passe, par exemple. «123456»

swiftBoy
la source
Je n'ai pas cette flèche pour développer
Nazar Medeiros
3

Pour toute personne ayant encore ce problème, la solution pour moi était de NE PAS sélectionner les deux et "Exporter 2 éléments" (la clé et le certificat) - plutôt simplement exporter le certificat qui contient DÉJÀ la clé. À partir de 2016, je pense que c'est la façon de le faire, car les téléchargements précédents qui fonctionnaient avec les éléments d'exportation 2 ne fonctionnent plus.

Jessicardo
la source
Je ne peux pas exporter uniquement le certificat au format p12 - êtes-vous sûr que c'est la bonne manière?
Cecil Rodriguez
Pareil ici. C'est très important.
Gautam Jain