- Ich habe das Zertifikat mit dem Chrome-Befehl SSL / export extrahiert.
- Stellen Sie es dann als Eingabe für openvpn bereit - in der Konfiguration für openvpn:
pkcs12 "path/to/pkcs12_container"
- Beim Aufruf
openvpn ~/openvp_config
wird nach einem Passwort für den privaten Schlüssel gefragt (das ich beim Exportieren mit Chrome eingegeben habe):
Enter Private Key Password:...
- Ich möchte diese Passwortanfrage entfernen.
Die Frage: Wie entferne ich das Passwort für den privaten Schlüssel von pkcs12?
Das heißt, erstellen Sie eine pkcs12-Datei, für die kein Kennwort erforderlich ist.
(Anscheinend habe ich das schon vor einem Jahr gemacht und jetzt vergessen. Verdammt.)
ssl-certificate
openssl
Ayrat
quelle
quelle
./remove_pass_from_cert.sh YourCertName YourCertPass
Antworten:
Es kann durch verschiedene
openssl
Aufrufe erreicht werden.Extrahieren Sie zuerst das Zertifikat:
Zweitens der CA-Schlüssel:
Nun der private Schlüssel:
Entfernen Sie nun die Passphrase:
Stellen Sie die Dinge für die neue PKCS-Datei zusammen:
Und erstelle die neue Datei:
Jetzt haben Sie eine neue PKCS12-Schlüsseldatei ohne Passphrase auf dem privaten Schlüsselteil.
quelle
ca-cert.ca
?-nodes
wird bei-export
Verwendung ignoriert, ist für diesen Fall nicht dokumentiert (siehe openssl-Manpage,-nodes
wird nur beim Export von PKCS # 12 nach PEM aufgelistet). Ihr letzter Anruf fordert mich immer noch zur Eingabe eines Exportkennworts auf. Und wenn ich nur die Eingabetaste drücke, erhalte ich eine PKCS # 12-Datei, deren Kennwort eine leere Zeichenfolge ist und keine ohne Kennwort. Wenn ich das dann macheopenssl pkcs12 -in "NewPKCSWithoutPassphraseFile"
, fragt es mich immer noch nach einem Import-Passwort. Ich kann einfach die Eingabetaste drücken und das funktioniert, aber wenn es kein Passwort gäbe, würde es nicht einmal dazu auffordern.Die einfachste Lösung, die ich gefunden habe, ist
In temporäre PEM-Datei exportieren
Konvertiere pem zurück zu p12
Temporäres Zertifikat entfernen
quelle
keytool -v -list -storetype pkcs12 -keystore unprotected.p12
wird eine Warnung ausgegeben und das Zertifikat NICHT aufgelistet. So kann es für OpenVPN arbeiten, aber nicht für etwas anderes.Dies kann problemlos in einem Schritt ohne temporäre Datei durchgeführt werden:
openssl pkcs12 -in "PKCSFile" -nodes | openssl pkcs12 -export -out "PKCSFile-Nopass"
Beantworten Sie die Aufforderung zum Importieren des Kennworts mit dem Kennwort. Beantworten Sie die Eingabeaufforderungen zum Exportieren von Passwörtern mit <CR>
Getan.
Beachten Sie, dass dies eine beliebige Anzahl von Zwischenzertifikaten behandelt, die im Bundle enthalten sein können ...
Ich empfehle dringend, mit der resultierenden Datei vorsichtig zu sein. Es wäre eine gute Idee, umask zuerst auf 377 zu setzen (Nicht-Unix: Dies bedeutet, dass nur der Eigentümer die erstellte Datei lesen kann.) Ich nehme an, dass dies 2 Schritte sind, wenn Ihre Standard-Umask zulässig ist ...
quelle
Nun der private Schlüssel:
Entfernen Sie jetzt die Passphrase:
Die 2 Schritte können durch ersetzt werden
quelle
Nichts davon hat bei mir funktioniert. Am Ende kehrte ich zu DotNet-Code zurück, der beim ersten Mal funktionierte.
quelle