Mon objectif était de créer une CSR (demande de signature de certificat) en utilisant ma clé privée existante à soumettre à Apple pour générer un nouveau certificat de distribution iPhone. Je me suis assuré que Certificats était la catégorie sélectionnée sur la gauche. J'ai essayé de faire un clic droit sur ma clé privée et de cliquer sur Demander un certificat à une autorité de certification avec une clé privée importée et j'obtenais l'erreur suivante lorsque j'essayerais de l'enregistrer.
L'élément spécifié est introuvable dans le trousseau.
J'ai également eu la même erreur lorsque j'ai parcouru le menu Fichier: Accès au trousseau > Assistant de certificat
Ce que j'ai recueilli à partir d'autres sources Internet, c'est que Keychain Access NE vous permet PAS de créer un nouveau CSR si vous avez importé la clé privée, uniquement si vous avez créé la clé localement à partir de l'outil.
Ce que j'ai fini par faire à la place, c'était d'exporter la clé privée et d'utiliser openssl pour générer le nouveau CSR, ce qu'Apple a accepté et fait désormais référence à la nouvelle clé privée importée.
Exporter la clé privée
- Faites un clic droit sur la clé privée
- Exportation
- Assurez-vous que le format de fichier p12 est sélectionné
- sauver
- Entrez un mot de passe (facultatif)
- Autoriser l'accès à la clé d'exportation
- Ouvrez Terminal et accédez au répertoire exporté
- Extraire la clé du conteneur p12
Attention car la clé privée .pem n'est plus protégée par mot de passe)
$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK
Création d'un nouveau CSR avec une clé privée exportée
$ openssl req -out Certificates.csr -key Certificates.pem -new
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:John Doe Dev Key
Email Address []:thon@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Quelques points à noter:
- Entrer . quand vous voulez que le champ soit vide, ou la valeur par défaut inclura tout ce qui est entre crochets [].
- Le nom commun (CN) doit être le nom de votre clé privée (par exemple, John Doe Dev Key)
- L'adresse e-mail doit être votre adresse e-mail (par exemple, thon@example.com)
- Tout le reste doit être vide
Vérifiez votre CSR
$ openssl req -noout -text -in Certificates.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: CN=John Doe Dev Key/emailAddress=thon@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
…
Exponent: 65537 (0x10001)
Attributes:
a0:00
Signature Algorithm: sha1WithRSAEncryption
…
Ce dont vous devriez vous soucier est sur le sujet ligne et vérifiez que c'est correct.
Il ne vous reste plus qu'à le soumettre à Apple, à attendre que le certificat soit généré, puis à l'installer. Après avoir importé votre certificat nouvellement généré, vous verrez qu'il fera référence à l'ancien certificat que vous avez exporté ci-dessus.