Ein VPN-Zertifikat zu kopieren kopiert nicht den Schlüssel
Ein Zertifikat enthält den öffentlichen Schlüssel und die signierte Identität; sein privater Schlüssel ist getrennt. Lesen Sie das Exportpaket, bevor Sie annehmen, dass eine Kopie sich authentifizieren kann.
Der Durchgang beginnt bei der Zertifikatsliste des Clients, wo der Eintrag einen Namen, einen Aussteller und ein Ablaufdatum zeigt und sonst nichts. Exportieren Sie ihn, importieren Sie ihn auf dem zweiten Gerät, und die Verbindung wird abgelehnt, weil der Client den Besitz des privaten Schlüssels nicht nachweisen kann. Die Datei wurde vollständig kopiert; der Fehler ist die Erwartung, ein Zertifikat bringe seinen eigenen Schlüssel mit. Lesen Sie den Exportdialog, bevor Sie das Format wählen, und prüfen Sie dann die Datei, die Sie tatsächlich erhalten haben.
Zwei Klicks, zwei sehr verschiedene Artefakte.
Lesen Sie den Exportdialog, nicht die Dateiendung
Ein DER- oder PEM-Zertifikatsexport enthält einen öffentlichen Schlüssel und die signierten Identitätsaussagen, also das, was ein Server braucht, um Ihnen zu vertrauen, und was ein Client braucht, um einen Server zu prüfen. Ein PKCS#12-Paket ist ein Container, der ein Zertifikat, dessen Kette und den passenden privaten Schlüssel enthalten kann, geschützt durch ein Passwort, obwohl es sich auch ohne den Schlüssel erstellen lässt.
PEM ist nur eine Textkodierung, kein Versprechen über den Inhalt. Dieselbe Endung kann ein einzelnes Zertifikat oder eine Datei mit mehreren beschrifteten Blöcken beschreiben, und die Exportoptionen entscheiden, was zutrifft.
Die nützliche Frage ist also nie, welche Endung Sie bekommen haben, sondern welche Blöcke die Datei enthält. Ein ohne seinen Schlüssel exportiertes Paket bleibt ein Paket. Prüfen Sie den Inhalt statt die Beliebtheit des Formats.
Prüfen Sie, was Sie tatsächlich bekommen haben
Suchen Sie die Beschriftungen, bevor Sie etwas importieren, und lesen Sie dann die Zertifikatsfelder, um zu bestätigen, welche Identität Sie in der Hand halten. Führen Sie die Prüfungen an der Datei aus, die tatsächlich importiert wird. Wiederholen Sie sie nach jedem erneuten Export, weil die Optionen abweichen können.
grep -E 'BEGIN (CERTIFICATE|PRIVATE KEY|ENCRYPTED PRIVATE KEY)' bundle.pem openssl x509 -in client.crt -noout -subject -issuer -dates openssl pkey -in client.key -noout -text | head -5 openssl pkcs12 -info -in client.p12 -noout
Ein Export mit nur einem Zertifikatsblock ist ein öffentliches Objekt und kann sich nicht authentifizieren. Ein Schlüsselblock ohne Zertifikat lässt Sie ohne die Kette zurück, die der Server erwartet. Die PKCS#12-Informationsausgabe meldet außerdem, ob ein Schlüssel vorhanden ist, was die Frage für dieses Format klärt. Sie nennt auch Algorithmus und Schlüssellänge und schlägt vollständig fehl, wenn kein Schlüssel vorhanden ist.
Kleben Sie niemals eine Datei mit einem privaten Schlüssel in einen Support-Thread, einen Issue-Tracker oder einen Chat, selbst wenn sie wie das Zertifikat aussieht, das Sie bereits geteilt haben. Screenshots eines Schlüsselpanels verdienen dieselbe Vorsicht.
Der Schlüssel kann dort liegen, wo Sie ihn nicht kopieren können
Auf verwalteten Geräten kann der private Schlüssel im Schlüsselbund des Betriebssystems, in einem Hardware-Token oder in einer sicheren Enklave liegen, wobei eine Richtlinie ihn als nicht exportierbar kennzeichnet. Der Zertifikatsmanager zeigt dann das öffentliche Objekt, während das Geheimnis bleibt, wo es ist, und kein Exportbefehl erzeugt eine portable Kopie. Die Registrierung über Mobile-Device-Management funktioniert oft genau so.
Das ist eine Kontrolle, kein Hindernis, das man umgeht. Einen privaten Schlüssel aus dem öffentlichen Zertifikat zu rekonstruieren ist nicht möglich, und jedes Werkzeug, das dies behauptet, tut etwas anderes.
Registrieren Sie eine neue Identität statt zu kopieren
Der unterstützte Weg ist meist, für das neue Gerät eine eigene Identität zu registrieren und die alte zu widerrufen, wenn sie ausgemustert wird, sodass jedes Gerät unabhängig zurückgezogen werden kann. Wo ein Export mit dem Schlüssel wirklich genehmigt ist, behandeln Sie die entstehende Datei und ihr Passwort als Anmeldedaten: verschlüsselt im Ruhezustand, über einen vertrauenswürdigen Kanal übertragen und gelöscht, wenn die Registrierung abgeschlossen ist.
Prüfen Sie durch Authentifizierung mit der importierten Identität, nicht dadurch, dass der Import gelingt. Ein Client, der ein öffentliches Zertifikat in seinen Speicher aufnimmt, hat nichts über den Schlüssel bewiesen.
Schließen Sie ab, indem Sie bestätigen, dass der Server die neue Identität annimmt und dass sich die alte weiterhin so verhält, wie es die Richtlinie vorsieht. Das beendet den Durchgang mit Belegen statt mit einer Datei, die richtig aussieht.