Sto provando molto senza successo a utilizzare TunnelBlick
(un client OS / X OpenVPN 2.2.1 noto come buono) per connettermi usando i certificati. Ecco il messaggio di errore (sanificato) che ricevo:
11/01/2012 11:18:26 TLS: pacchetto iniziale da **. **. **. **: 1194, sid = 17a4a801 5012e004 2012-01-11 11:18:26 VERIFY ERROR: profondità = 1, errore = certificato autofirmato nella catena di certificati: / C = US / ST = ** / L = ** / O = ** / CN = ** / emailAddress = ** 11/01/2012 11:18:26 TLS_ERROR: BIO lettura errore tls_read_plaintext: errore: 14090086: routine SSL: SSL3_GET_SERVER_CERTIFICATE: verifica certificato non riuscita 2012-01-11 11:18:26 Errore TLS: oggetto TLS -> errore di lettura in testo normale in arrivo 2012-01-11 11:18:26 Errore TLS: stretta di mano TLS non riuscita 11/01/2012 11:18:26 TCP / UDP: socket di chiusura
Ora, ecco il problema. Ho generato un CSR me stesso per richiedere questo certificato, utilizzando il ca.crt file fornito a me da l'altro lato (in realtà, lo hanno fatto due volte solo per assicurarsi).
Le voci rilevanti nella configurazione client sono:
ca ca.crt
cert my.crt
key my.key
e, inoltre ... posso verificare le chiavi in questo modo:
openssl verifica -CAfile ca.crt my.crt
my.crt: OK
Ok, quindi ora sono completamente sconcertato e sconcertato. A questo punto, so che il CSR e la chiave sono stati generati usando il CSR appropriato. In effetti, ecco il comando stesso che l'ha fatto:
openssl req -newkey rsa:2048 -new -out my.csr -keyout my.key
Sapevo anche di fare questo:
openssl x509 -subject -issuer -noout -in ca.crt
...
(Lampeggio!)
L'ho appena trovato ?
L'output di quel comando è simile al seguente: (modificato in qualche modo)
subject = / C = US / ST = VA / L = ** / O = ** / CN = ** CA / emailAddress = ** emittente = (lo stesso)
mentre nel messaggio di errore di OpenVPN, ST = non è esattamente lo stesso:
VERIFICA ERRORE: profondità = 1, errore = certificato autofirmato nella catena di certificati: / C = US / ST = Virginia / L = ** / O = ** / CN = ** / emailAddress = **
"VA" non è esattamente uguale a "Virginia".
openssl s_client -connect host:port -showcerts
e confronta l'identificazione personale del certificato ricevuto conopenssl x509 -noout -text -in ca.crt
.