Saya berusaha sangat gagal menggunakan TunnelBlick
(klien OS / X OpenVPN 2.2.1 yang dikenal baik) untuk terhubung menggunakan sertifikat. Berikut adalah pesan kesalahan (dibersihkan) yang saya terima:
2012-01-11 11:18:26 TLS: Paket awal dari **. **. **. **: 1194, sid = 17a4a801 5012e004 2012-01-11 11:18:26 KESALAHAN VERIFIKASI: kedalaman = 1, kesalahan = sertifikat yang ditandatangani sendiri dalam rantai sertifikat: / C = US / ST = ** / L = ** / O = ** / O = ** / CN = ** / emailAddress = ** 2012-01-11 11:18:26 TLS_ERROR: BIO membaca kesalahan tls_read_plaintext: error: 14090086: rutinitas SSL: SSL3_GET_SERVER_CERTIFICATE: verifikasi sertifikat gagal 2012-01-11 11:18:26 Kesalahan TLS: objek TLS -> kesalahan baca plaintext yang masuk 2012-01-11 11:18:26 Kesalahan TLS: Jabat tangan TLS gagal 2012-01-11 11:18:26 TCP / UDP: Closing socket
Sekarang, ini intinya. Saya membuat CSR sendiri untuk meminta sertifikat ini, menggunakan file ca.crt yang diberikan kepada saya oleh pihak lain (sebenarnya, mereka melakukannya dua kali hanya untuk memastikan).
Entri yang relevan dalam konfigurasi klien adalah:
ca ca.crt
cert my.crt
key my.key
dan, selanjutnya ... Saya dapat memverifikasi kunci dengan cara ini:
openssl memverifikasi -CAfile ca.crt my.crt
my.crt: OK
Oke, jadi sekarang saya benar-benar bingung dan bingung. Pada titik ini, saya tahu bahwa CSR dan kunci dihasilkan menggunakan CSR yang tepat. Sebenarnya, inilah perintah yang melakukannya:
openssl req -newkey rsa:2048 -new -out my.csr -keyout my.key
Saya juga tahu untuk melakukan ini:
openssl x509 -subject -issuer -noout -in ca.crt
...
(berkedip!)
Apakah saya baru saja menemukannya ?
Output dari perintah itu terlihat seperti ini: (agak diedit)
subject = / C = US / ST = VA / L = ** / O = ** / CN = ** CA / emailAddress = ** penerbit = (sama)
sedangkan dalam pesan kesalahan dari OpenVPN, ST = tidak persis sama:
KESALAHAN VERIFIKASI: kedalaman = 1, kesalahan = sertifikat yang ditandatangani sendiri dalam rantai sertifikat: / C = AS / ST = Virginia / L = ** / O = ** / CN = ** / emailAddress = **
"VA" tidak persis sama dengan "Virginia."
openssl s_client -connect host:port -showcerts
, dan bandingkan cap jempol dari sertifikat yang diterimaopenssl x509 -noout -text -in ca.crt
.