fehlender privater Schlüssel im Verteilungszertifikat am Schlüsselbund

170

Ich habe das folgende Problem, für das ich nirgendwo eine Lösung finden konnte. Grundsätzlich haben wir ein Unternehmensentwicklerkonto (kein Unternehmen). Um unsere App einzureichen, habe ich unseren Teamleiter gebeten, mir das Verteilungszertifikat zu senden und ein Verteilungsbereitstellungsprofil zu erstellen und mir zu senden.

Mit dem Entwicklerprofil funktioniert alles gut, aber als ich das Zertifikat und das Bereitstellungsprofil installiert habe, habe ich weder das Verteilungsprofil auf Xcode gesehen, noch habe ich einen privaten Schlüssel unter dem dist-Zertifikat im Schlüsselbund.

Weiß jemand, wie man das löst? Ich habe an verschiedenen Stellen gelesen, dass ich das Zertifikat widerrufen und ein neues erstellen muss, aber das kann ich nicht wirklich, da wir eine Reihe von Apps im Unternehmen haben und ich es nicht für alle widerrufen kann.

Moshikafya
quelle
2
Manchmal fehlt der private Schlüssel, weil wir versuchen, Zertifikate mit .CSR zu erstellen, die auf einem anderen Computer erstellt wurden. Stellen Sie also sicher, dass Ihre CSR-Datei auch auf demselben Computer erstellt wird, auf dem Sie versuchen, ein Zertifikat zu erstellen und zu installieren. Sie können auch .p12-Zertifikate verwenden, um dieses Problem zu vermeiden
MAhipal Singh,
2
In meinem Fall habe ich zwei identische Signaturzertifikate in meinem Schlüsselbund ... Es wurde gelöst, einfach eines davon zu löschen ... Nur für den Fall ...
juanram0n

Antworten:

166

Geben Sie hier die Bildbeschreibung einAhh das ist ein häufiges Problem. Die Lösung ist einfach:

Wer die Entwickleranmeldeinformationen ursprünglich erstellt hat, muss zum Schlüsselbund auf seinem Computer gehen und mit der rechten Maustaste auf die Schlüssel für privat und öffentlich klicken und den Schlüssel in eine Datei exportieren. Dann laden Sie diese Datei einfach auf Ihren Computer herunter und öffnen sie. Sie wird dann Ihrem Schlüsselbund hinzugefügt.

Sie benötigen sowohl den privaten Schlüssel (PEM-Datei) als auch das Zertifikat für Ihre Bereitstellungsprofile.

Nirma
quelle
36
Um genauer zu sein, ist es die .p12-Datei, die Sie benötigen (exportiert)
mkral
7
@Nirma Was tun, wenn wir keinen Zugriff auf den Computer haben, von dem aus die Entwickleranmeldeinformationen ursprünglich erstellt wurden?
Nishad Arora
@NishadArora Sie müssen einen neuen Schlüssel erstellen, um ihn verwenden zu können. Es gibt keine Möglichkeit, es ohne den privaten Schlüssel zu verwenden. AFAIK
Joshua Pinter
2
@ Nirma Wie erstelle ich eine neue
Muju
70

Solange Sie noch Zugriff auf den Mac haben, mit dem das ursprüngliche Distributionszertifikat erstellt wurde, ist dies sehr einfach.

Verwenden Sie einfach die Keychain Access-Anwendung dieses Mac, um sowohl das Zertifikat als auch den privaten Schlüssel zu exportieren. Wählen Sie beide mit Umschalt oder Befehl aus und klicken Sie mit der rechten Maustaste, um sie in eine .p12-Datei zu exportieren.

Hängte einen Screenshot an, um es sehr deutlich zu machen.

Importieren Sie auf Ihrem Mac diese .p12-Datei und Sie können loslegen (stellen Sie einfach sicher, dass Sie ein gültiges Bereitstellungsprofil haben).

Wählen Sie einfach Exportieren

eladleb
quelle
55

Wenn Sie keinen Zugriff mehr auf diesen privaten Schlüssel haben, können Sie die Antworten anderer Benutzer ganz einfach wieder in Betrieb nehmen:

  1. Widerrufen Sie Ihr aktives Zertifikat im Bereitstellungsportal
  2. neues Entwicklerzertifikat erstellen (Schlüsselbundzugriff /.../ Anfrage für csr ... etc.)
  3. Laden Sie ein neues Zertifikat herunter und installieren Sie es
  4. Erstellen Sie ein neues Bereitstellungsprofil für die vorhandene App-ID (auf dem Bereitstellungsportal).
  5. Laden Sie das neue Bereitstellungsprofil herunter und installieren Sie es. In den Build-Einstellungen werden die entsprechenden Codesignaturidentitäten festgelegt
mkral
quelle
13
Hier in meiner Firma ist immer ein Chaos, niemand weiß, auf welchem ​​Computer ein bestimmtes Zertifikat erstellt wurde. Ist einfach besser zu widerrufen und neu zu erstellen
user2387149
1
@ user2387149 Ich bin 6 Jahre später hier, um CI / CD vorzuschlagen, um solche Dinge zu tun und die Verteilung über xCode zu vergessen.
Edgar Salazar
Wenn ich bereits ein Distributionszertifikat heruntergeladen habe, habe ich es widerrufen und erneut angefordert. soll ich das alte Verteilungszertifikat entfernen?
Kafinsalim
14

Löschen Sie die vorhandene Datei aus KeyChain, rufen Sie die P12-Datei ab und fügen Sie sie Ihrem Mac hinzu, von dem aus das Zertifikat erstellt wurde.

Um .p12 vom Quell-Mac zu erhalten, gehen Sie zu KeyChain, erweitern Sie das Zertifikat, wählen Sie beide aus und exportieren Sie 2 Elemente. Dadurch wird die P12-Datei an Ihrem Speicherort gespeichert:

Geben Sie hier die Bildbeschreibung ein

Jamshed Alam
quelle
8

In meinem Fall habe ich alle privaten Schlüssel in meinem Schlüsselbund verloren, neue wurden korrekt importiert, aber der private Schlüssel wird nicht angezeigt. Das einzige, was geholfen hat, war das Generieren einer neuen CertificateSigningRequest

JakubKnejzlik
quelle
6

Nachdem Sie einen Mac geändert haben, der nicht der Ursprungszertifikat ist, der das Verteilungszertifikat erstellt hat, fehlt Ihnen der private Schlüssel. Löschen Sie einfach das Ursprungszertifikat und erstellen Sie ein neues, das für mich funktioniert ~

Michael Yang
quelle
5

Wenn ich versuche, iOS Build hochzuladen, um den Flug zu testen, wurde ein Fehler angezeigt.

"Missing privacy key".

Geben Sie hier die Bildbeschreibung ein

Nur 2 Schritte, um diesen Fehler zu beheben.

  1. Entfernen Sie das alte Zertifikat von developer.apple.com
  2. Erstellen Sie ein neues Zertifikat von Xcode oder developer.apple.com

Mein Problem wurde behoben (ich verwende Xcode 9.4.1).

Bitte überprüfen Sie, Xcode erstellt neues Zertifikat.

Geben Sie hier die Bildbeschreibung ein

Vivek
quelle
5

Für Personen, die Angst haben, das AppStore-Verteilungszertifikat neu zu erstellen, heißt es in der Apple- Dokumentation :

Wichtig: Das erneute Erstellen Ihrer Entwicklungs- oder Vertriebszertifikate wirkt sich weder auf Apps aus, die Sie an den App Store gesendet haben, noch auf Ihre Fähigkeit, diese zu aktualisieren.

Es betrifft jedoch Apps für das Apple Developer Enterprise- Ökosystem.

Ramis
quelle
4
Es funktioniert, wenn Sie ein Unternehmenskonto haben!
MobileMon
Mit "Enterprise Ecosystem System" .... Zum Beispiel. Sprechen Sie darüber, wenn Sie in einem großen Unternehmen arbeiten und 100 Entwickler diesen privaten Schlüssel für diese bestimmte App haben?
Petrosmm
2

Über Menü> Visual Studio (Mac)> Einstellungen> Veröffentlichen> Apple Developer Accounts> [Wählen Sie Ihre Apple-ID aus]> Details anzeigen> Zertifikat erstellen

Um nicht verwendete / ungültige Zertifikate zu löschen, gehen Sie zur Website: https://developer.apple.com/account/resources/certificates/list

Löschen Sie dort unerwünschte Zertifikate

Als Nächstes erstellen Sie eine App-ID (Bezeichner) und gehen zur Website:
https://developer.apple.com/account/resources/identifiers/list

Wechseln Sie als Nächstes zur Website, um Bereitstellungsprofile zu erstellen:
https://developer.apple.com/account/resources/profiles/add

Verwenden Sie das Zertifikat, um eine Bindung mit Ihrer App-ID herzustellen.

Als Nächstes müssen Sie die Profile herunterladen:
Auf Ihrem Mac> Im Menü> Visual Studio (Mac)> Einstellungen> Veröffentlichen> Apple-Entwicklerkonten> [Wählen Sie Ihre Apple-ID aus]> Details anzeigen> Alle Profile herunterladen

mjb
quelle
1

Ich habe auf der Entwickler-Website von Apple auf dieses Zertifikat zugegriffen und es nach dem Herunterladen geöffnet. Ebenso wurde beim Öffnen ein kleines Fenster angezeigt, in dem ich gefragt wurde, ob ich das Zertifikat zum Schlüsselbund hinzufügen möchte. Tippen Sie einfach auf "Hinzufügen" und der Fehler "Fehlender privater Schlüssel" war verschwunden.

ISS
quelle
1

Ich bin in diese Situation geraten ("Fehlender privater Schlüssel"), nachdem Xcode kein neues Verteilungszertifikat erstellen konnte - ein unbekannter Fehler ist aufgetreten.

Dann bemühte ich mich, den privaten Schlüssel zu erhalten oder ein neues Zertifikat zu generieren. Vom Zertifikatmanager in Xcode habe ich seltsame Fehler wie "Die eingegebene Passphrase ist falsch" erhalten. Aber es hat mich nicht einmal nach einer Passphrase gefragt.

Was mir geholfen hat war:

  1. Widerrufen Sie alle nicht funktionierenden Vertriebszertifikate unter developer.apple.com
  2. Starten Sie meinen Mac neu

Danach konnte Xcode ein neues Verteilungszertifikat erstellen und es fehlte kein privater Schlüssel.

Lektion gelernt: Starten Sie Ihren Mac genauso neu wie Windows;)

Štěpán Havránek
quelle
0

Überprüfen Sie, ob Sie Login verwenden, um die Zertifikate hinzuzufügen. Wenn Sie das System oben links einchecken, können wir es nicht sehen.

Ziehen Sie die .cer-Datei per Drag & Drop in die Anmeldung und überprüfen Sie, ob Sie den privaten Schlüssel erhalten können oder nicht.

Priyanka
quelle
0

Nur um etwas Licht ins Dunkel zu bringen.

Nachdem ich mein p12-Zertifikat aus dem Schlüsselbund gelöscht habe. Ich habe mein eigenes Zertifikat vom Apple-Entwicklerportal erneut heruntergeladen.

Ich konnte nur das Zertifikat herunterladen. Zum Signieren benötigen Sie jedoch auch den privaten Schlüssel. Also Sie entweder:

  • Exportieren Sie sowohl den privaten Schlüssel als auch das Zertifikat aus dem Schlüsselbund, um es zu erhalten.

  • Laden Sie eine Zertifikatsignierungsanforderung hoch und generieren Sie neue Zertifikate

Dieses Zertifikat selbst hat keinen Wert für Signaturzwecke. Ich vermute, dass der private Schlüssel vom Schlüsselbund erstellt wird, sobald Sie ein Zertifikat von einer Zertifizierungsstelle anfordern, aber erst angezeigt wird, wenn Sie das Bindungszertifikat hinzufügen.

Honig
quelle