Ich versuche sehr erfolglos, TunnelBlick
(einen OS / X OpenVPN 2.2.1-Client, der als gut bekannt ist) eine Verbindung über Zertifikate zu verwenden. Hier ist die (bereinigte) Fehlermeldung, die ich erhalte:
2012-01-11 11:18:26 TLS: Erstes Paket von **. **. **. **: 1194, sid = 17a4a801 5012e004 2012-01-11 11:18:26 FEHLER PRÜFEN: Tiefe = 1, Fehler = selbstsigniertes Zertifikat in der Zertifikatkette: / C = US / ST = ** / L = ** / O = ** / CN = ** / emailAddress = ** 2012-01-11 11:18:26 TLS_ERROR: BIO-Lesefehler tls_read_plaintext: Fehler: 14090086: SSL-Routinen: SSL3_GET_SERVER_CERTIFICATE: Zertifikatüberprüfung fehlgeschlagen 2012-01-11 11:18:26 TLS-Fehler: TLS-Objekt -> eingehender Klartext-Lesefehler 2012-01-11 11:18:26 TLS-Fehler: TLS-Handshake fehlgeschlagen 2012-01-11 11:18:26 TCP / UDP: Socket schließen
Hier ist das Problem. Ich erzeugen ein CSR mich dieses Zertifikat zu verlangen, die mit ca.crt mir Datei von der anderen Seite (in der Tat, sie haben sie zweimal nur um sicher zu machen).
Die relevanten Einträge in der Client-Konfiguration sind:
ca ca.crt
cert my.crt
key my.key
und außerdem ... kann ich die Schlüssel folgendermaßen überprüfen:
openssl verify -CAfile ca.crt my.crt
my.crt: OK
Okay, jetzt bin ich gründlich verwirrt und ratlos. Zu diesem Zeitpunkt weiß ich , dass die CSR und der Schlüssel mit der richtigen CSR generiert wurden. In der Tat ist hier genau der Befehl, der es getan hat:
openssl req -newkey rsa:2048 -new -out my.csr -keyout my.key
Ich wusste auch Folgendes:
openssl x509 -subject -issuer -noout -in ca.crt
...
(blinken!)
Habe ich es gerade gefunden ?
Die Ausgabe dieses Befehls sieht folgendermaßen aus: (etwas bearbeitet)
Betreff = / C = US / ST = VA / L = ** / O = ** / CN = ** CA / emailAddress = ** Emittent = (das gleiche)
wohingegen in der Fehlermeldung von OpenVPN das ST = nicht genau dasselbe ist:
FEHLER PRÜFEN: Tiefe = 1, Fehler = selbstsigniertes Zertifikat in der Zertifikatskette: / C = US / ST = Virginia / L = ** / O = ** / CN = ** / emailAddress = **
"VA" ist nicht genau gleich "Virginia".
openssl s_client -connect host:port -showcerts
mit und vergleichen Sie den Fingerabdruck des empfangenen Zertifikats mitopenssl x509 -noout -text -in ca.crt
.