Erreur lors de la tentative d'obtention d'un certificat: l'élément spécifié est introuvable dans le trousseau

111

J'avais un problème avec la signature de code de mes applications, j'ai donc supprimé toutes les clés du trousseau. Ensuite, je suis allé à Certificate Assistant => Demander un certificat à une autorité de certification (pour créer un CSR pour un nouveau certificat).

Alors entrez mon adresse e-mail et voici ce que j'obtiens:

L'élément spécifié est introuvable dans le trousseau.

Qu'est-ce que je fais mal?

PS Lorsque j'essaie de créer une autorité de certification , j'obtiens la même erreur.

Sergey
la source
1
Je reçois la même erreur. Pouvez-vous préciser votre réponse ou quelqu'un qui sait comment le faire
Iducool
9
Le redémarrage de l'accès KeyChain a fonctionné pour moi :)
Mohit Padalia
1
Pour ceux qui réutilisent une clé privée pour un deuxième but de signature (par exemple installer+ application), veuillez consulter les étapes manuelles de @ toland-hon ci-dessous qui utilisent OpenSSL en ligne de commande pour contourner l' Keychain Accessapplication boguée . Les étapes ci-dessous qui dirigent les utilisateurs vers la Certificatesection de Keychain Accessne fonctionnent toujours PAS lors de la réutilisation d'une clé privée à des fins secondaires. La CSR manuelle via opensslest une solution de contournement viable.
tresf

Réponses:

303

Je l'ai résolu. Assurez-vous de vous trouver dans la section «Certificats» et de sélectionner «Autorité de certification des relations avec les développeurs Apple dans le monde» avant de demander un certificat.

Francesco
la source
7
Vous êtes un héros. Je m'arrachais les cheveux quand toutes les autres réponses ne résolvaient pas le problème.
BFeher
23
Oh mon dieu Apple WTF? Merci John!
MattD
2
C'est insensé. :(: P what the falooda ??? Sérieusement, il doit y avoir une alerte ou un message convivial.
Adil Soomro
2
Je n'ai pas considéré cette réponse parce que je pensais que c'était fou. mais cela fonctionne réellement. il y a des parties lâches de l'écosystème de la pomme qui sont tout simplement folles :)
alex
2
Cela a résolu le problème pour moi. La sélection de mon ancienne clé privée ne fonctionnait pas, ni la sélection d'une clé. Comment obscur ...
zai chang
46

L'accès au trousseau ne vous permettra pas de demander un certificat à une autorité de certification avec « identité » ... sauf si vous avez à la fois la clé privée et la clé publique d' identité dans votre trousseau. J'ai rencontré cela alors que je n'avais que la clé privée et non la clé publique correspondante.

Vous pouvez créer la clé publique à partir de la clé privée et l'importer dans votre trousseau en utilisant la procédure décrite dans J'ai perdu ma clé publique. Puis-je le récupérer à partir d'une clé privée?

Une fois que j'ai importé la clé publique, j'ai pu utiliser la commande Demander un certificat à une autorité de certification avec " identité " ... sans déclencher la élément spécifié n'a pas pu être trouvé dans l' erreur de trousseau .

Gene Goykhman
la source
Vous avez raison, comment le certificat peut-il être créé sans la clé publique :)
onmyway133
29

Accédez à la section " Certificats " et sélectionnez " Autorité de certification Apple Worldwide Developer Relations " avant de demander un certificat.

entrez la description de l'image ici

aterechkov
la source
21

Vous demandez (peut-être accidentellement) à Keychain Access de générer une demande de signature de certificat à l' aide d'une clé existante . Si une clé est sélectionnée lorsque vous accédez au menu Keychain Access - Certificate Assistant , les options présentées seront pour cette clé sélectionnée.

Choisissez un élément non clé dans votre trousseau (comme un mot de passe enregistré) et accédez à nouveau à Keychain Access - Certificate Assistant pour générer le CSR normalement.

Phil Calvin
la source
Il semble que OS X utilise maintenant par défaut le premier élément sélectionné maintenant. Si vous choisissez simplement un trousseau différent (c'est-à-dire un système) lorsque vous le générez, cela devrait résoudre le problème.
James Parker
Putain de merde, je n'aurais jamais deviné ça. Parlez de la mauvaise conception de l'interface utilisateur ...
d512
9

Même moi, j'avais ce problème. J'ai résolu ce problème en sélectionnant All Itemsau lieu de Keysdans le Categoriesvolet, puis en essayant de créer le certificat.

Essayez ceci, cela fonctionnera sûrement.

naddy19
la source
Mieux vaut redémarrer
knight2016
7

Cela m'arrivait, j'ai remarqué que l'option de menu pour créer la demande de certificat était passée de

Demander un certificat à une autorité de certification ...

à

Demander un certificat à une autorité de certification avec "Mon nom" ...

Cochez cette option de menu

Je suis sur un domaine au travail, donc je me suis déconnecté, connecté et déconnecté en tant qu'autre utilisateur, puis je me suis reconnecté. Après cela, le menu est apparu comme prévu et cette erreur a disparu

Damo
la source
4
Il s'agit d'une fonctionnalité de Keychain Access. Si vous avez sélectionné une clé lorsque vous accédez à ce menu, il vous proposera d'utiliser la clé pour créer la demande de signature de certificat. (Dans ce cas, les options sont les mêmes que lorsque vous cliquez avec le bouton droit de la souris sur une touche.) La déconnexion désélectionne la clé.
Phil Calvin
Vous n'avez pas besoin de vous déconnecter, puis de vous connecter. il suffit de quitter le trousseau et de l'ouvrir à nouveau maintenant, de ne sélectionner aucune entrée dans la liste et d'aller au menu pour demander
M.Shuaib Imran
7

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

  1. Faites un clic droit sur la clé privée
  2. Exportation
  3. Assurez-vous que le format de fichier p12 est sélectionné
  4. sauver
  5. Entrez un mot de passe (facultatif)
  6. Autoriser l'accès à la clé d'exportation
  7. Ouvrez Terminal et accédez au répertoire exporté
  8. 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, [email protected])
  • 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.

Toland Hon
la source
Même problème. Voulait conserver la même clé privée (c'est-à-dire utilisée à l'origine developerID_installer.cermais souhaitant la réutiliser pour developerID_application.cer). Les instructions d'Apple sont mauvaises car elles vous obligent à utiliser le buggy Keychain Accessou pire, XCode. Je suis tombé sur cette solution ci-dessus plutôt par inadvertance. Faire voter le vôtre parce que c'est exactement ce que j'ai fini par faire.
tresf
4

j'ai le même problème. Je peux créer CSR puis ne pas le créer et la même erreur se produit.

alors je peux rechercher et trouver peut solution mais pas résoudre.

quelque temps je peux le résoudre.

mon accès au trousseau via la première caisse CSR.so mon accès au trousseau est verrouillé.

ouvrir> accès au trousseau> haut de l'affichage d'accès au trousseau "Cliquez pour déverrouiller le trousseau système"

Cliquez dessus et déverrouillez le trousseau du système, puis créez un fichier CSR, puis ne recevez pas cette erreur.

sanjay damor
la source
2

Le choix de la clé privée dans le trousseau entraînera le problème. "l'élément spécifié est introuvable dans le trousseau" Pendant que vous choisissez la clé publique, résolvez-le. "Votre demande de certificat a été créée sur le disque."

Zgpeace
la source
1

OK, le nom qui s'affiche affiche l'élément que vous avez mis en surbrillance dans la fenêtre principale du trousseau (si vous sélectionnez un élément différent ici, vous voyez également l'élément de menu changer avec lui). Si vous allez dans la section catégorie sur la gauche et sélectionnez mes certificats par exemple et revenez à l'élément de menu de l'assistant de certificat, il ressemble / agit comme vous êtes habitué. J'espère que cela t'aides!

Cedrick
la source
1

Après avoir révoqué tous les certificats que j'avais, j'ai compris que le problème venait de mon yubikey . Cela gênait la signature de l'application. Après l'avoir retiré, le problème est résolu.

Ce fil de discussion m'a aidé: https://forums.developer.apple.com/thread/106938

Adriana Pineda
la source
Je vous remercie! C'était aussi mon problème. Ce n'est peut-être pas le problème pour la plupart des gens, mais quiconque possède un Yubikey devrait essayer de le retirer et de le reconstruire.
Philihp Buspar
0

Si vous avez sélectionné une clé privée dans le trousseau lors de la génération d'un nouveau CSR, il vous demandera une référence à cette clé. Assurez-vous simplement que vous avez sélectionné un élément de clé non privée pour générer un nouveau CSR qui sera utile pour en créer un nouveau.

Par exemple, conservez la sélection dans l'outil de trousseau "Clé publique" ou tout certificat existant qui n'a pas de clé privée alignée dessus. Suivez maintenant le flux "Demander un certificat à l'autorité de certification".

Ameer
la source
-14

Résolu! Dû changer "certificat d'utilisateur" en "signature de code".

Sergey
la source
Qu'entendez-vous par remplacer "Certificat utilisateur" par "Signature du code"?
user500
Oui s'il vous plaît, je rencontre également le même problème, qu'entendez-vous par «signature de code? Où est-ce?
Habitante