Öffentlicher Schlüssel kann nicht in den OSX-Schlüsselbund importiert werden

21

Ich habe ein paar selbstsignierte S / MIME-Zertifikate erstellt (mit OSX Keychain & OpenSSL) und diese dann in 3 Dateien exportiert:

  • Zertifikat (.cer)
  • Privater Schlüssel (.p12)
  • Öffentlicher Schlüssel (.pem)

Beim Versuch, diese wieder in einen anderen Mac zu importieren, wurden das Zertifikat und der private Schlüssel ohne Probleme importiert. Der öffentliche Schlüssel kann jedoch nicht importiert werden.

Stattdessen erhalte ich folgende Fehlermeldung:

Ein Fehler ist aufgetreten. Element kann nicht importiert werden.

Der Inhalt dieser Zeit kann nicht abgerufen werden

Screenshot des OSX-Schlüsselbundfehlers beim Importieren eines öffentlichen Schlüssels

Wie kann ich den öffentlichen Schlüssel importieren? Sollte es für den Import in ein anderes Format konvertiert werden?

Prembo
quelle
Warum möchten Sie den öffentlichen Schlüssel importieren? Es ist der private Schlüssel, den Sie importieren müssen. Der öffentliche Schlüssel verbleibt auf dem Server, der private Schlüssel wird auf den Client exportiert und fertig.
MariusMatutiae
Fair genug - also gibt es keine Möglichkeit, einen öffentlichen Schlüssel manuell über den Schlüsselbund zu importieren (z. B. wenn Ihnen jemand seinen öffentlichen Schlüssel als Datei zur Verfügung gestellt hat, anstatt Ihnen eine E-Mail zu senden)?
Prembo
1
Sie können scp verwenden, um alle Dateien während des Zeitraums, in dem die Kennwortverbindung zulässig ist, von einer zur anderen zu kopieren. Wenn Sie alle Schlüssel eingerichtet haben, können Sie die Kennwortanmeldung deaktivieren.
MariusMatutiae

Antworten:

31

Es ist ein Fehler in OSX. Sie können wie folgt von der Befehlszeile importieren:

/programming//a/11979625/59198

Der Befehl lautet:

security import pub_key.pem -k ~/Library/Keychains/login.keychain

Anschließend müssen Sie den Schlüssel in keychain.app umbenennen

Chris
quelle
Wohin importiert es? Ich kann es immer noch nicht im Schlüsselbund finden.
Huggie
@huggie Es lädt es mit einem wirklich generischen Namen in den Schlüsselbund, so etwas wie "öffentlicher Schlüssel" möglicherweise, und sucht dort nach etwas Neuem.
Chris
1

Das Zertifikat enthält tatsächlich eine Kopie des öffentlichen Schlüssels (zusammen mit einem Namen und einer Signatur der Zertifizierungsstelle, aus der hervorgeht, dass dieser Name und dieser öffentliche Schlüssel zusammengehören). Normalerweise müssen Sie den öffentlichen Schlüssel nicht als separates Element behandeln, wenn Sie ein zertifikatbasiertes System wie SMIME verwenden. Wenn Sie möchten, können Sie mit dem x509Befehl openssl eine Kopie des öffentlichen Schlüssels aus dem Zertifikat extrahieren .

(Ich frage mich, ob Keychain sich weigert, den öffentlichen Schlüssel zu importieren, weil es denkt, dass er bereits eine Kopie im Zertifikat hat. Die Fehlermeldungen von Keychain sind normalerweise ziemlich vage.)

Wim Lewis
quelle
1

Eine .p12-Datei kann Ihr Schlüsselpaar enthalten. Sie werden aufgefordert, ein Kennwort einzugeben, wenn es Ihren privaten Schlüssel enthält. Schlüsselbund zeigt den privaten Schlüssel verschachtelt an. Bei korrektem Import sollte dies unter "Meine Zertifikate" angezeigt werden.

bbaassssiiee
quelle