Mein Ziel war es, eine CSR (Certificate Signing Request) mit meinem vorhandenen privaten Schlüssel zu erstellen, um sie an Apple zu senden und ein neues iPhone Distribution-Zertifikat zu generieren. Ich habe sichergestellt, dass Zertifikate die ausgewählte Kategorie auf der linken Seite sind. Ich habe versucht, mit der rechten Maustaste auf meinen privaten Schlüssel zu klicken und auf Zertifikat von einer Zertifizierungsstelle mit importiertem privaten Schlüssel anfordern zu klicken. Beim Versuch, ihn zu speichern, wird die folgende Fehlermeldung angezeigt.
Das angegebene Element wurde nicht im Schlüsselbund gefunden.
Ich habe auch den gleichen Fehler erhalten, als ich das Dateimenü durchgesehen habe : Schlüsselbundzugriff > Zertifikatassistent
Was ich aus anderen Internetquellen zusammengetragen habe, ist, dass Sie mit dem Schlüsselbundzugriff KEINE neue CSR erstellen können, wenn Sie den privaten Schlüssel importiert haben, sondern nur, wenn Sie den Schlüssel lokal aus dem Tool erstellt haben.
Am Ende habe ich stattdessen den privaten Schlüssel exportiert und mit openssl die neue CSR generiert, die Apple akzeptiert hat, und verweist jetzt auf den neuen importierten privaten Schlüssel.
Exportieren des privaten Schlüssels
- Klicken Sie mit der rechten Maustaste auf den privaten Schlüssel
- Export
- Stellen Sie sicher, dass das p12-Dateiformat ausgewählt ist
- sparen
- Passwort eingeben (optional)
- Zugriff auf Exportschlüssel zulassen
- Öffnen Sie das Terminal und wechseln Sie in das exportierte Verzeichnis
- Schlüssel aus dem p12-Behälter ziehen
Seien Sie vorsichtig, da der private .pem-Schlüssel nicht mehr kennwortgeschützt ist.
$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK
Neue CSR mit exportiertem privaten Schlüssel erstellen
$ 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 []:
Ein paar Dinge zu beachten:
- Eingeben . Wenn das Feld leer sein soll oder die Standardeinstellung alles in den Klammern [] enthält.
- Common Name (CN) sollte Ihr privater Schlüsselname sein (z. B. John Doe Dev Key).
- Die E-Mail-Adresse sollte Ihre E-Mail-Adresse sein (z. B. thon@example.com).
- Alles andere sollte leer sein
Überprüfen Sie Ihre 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
…
Was Sie beachten sollten, steht in der Betreffzeile und überprüfen Sie, ob dies korrekt ist.
Jetzt müssen Sie es nur noch an Apple senden, auf die Generierung des Zertifikats warten und es dann installieren. Nachdem Sie Ihr neu generiertes Zertifikat importiert haben, sehen Sie, dass es auf das alte Zertifikat verweist, das Sie oben exportiert haben.