verifikasi sertifikat klien ssl gagal di nginx


10

Saya mencoba mengatur otentikasi klien ssl di nginx. Saya membuat CA root yang ditandatangani sendiri. Dengan menggunakan itu, saya membuat sub-CA. Saya menggunakan sub-CA ini untuk membuat sertifikat untuk klien. Saya menggabungkan sub-CA dan root CA ke file baru. Saya memverifikasi sertifikat klien sebagai berikut:

$ openssl verify -purpose sslclient -CAfile auth-root.crt testcert.crt
testcert.crt: OK

auth-root.crt adalah sub dan root CA yang disatukan; testcert.crt adalah sertifikat klien.

Saya menunjuk nginx ke auth-root.crt menggunakan ssl_client_certificate.

Ketika saya membuat permintaan HTTP menggunakan sertifikat testcert.crt, nginx gagal. Saya menyalakan log debug dan dapat melihat yang berikut:

2012/06/21 22:58:47 [debug] 8901#0: *2 verify:0, error:2, depth:1, subject:"/C=US/ST=Florida/L=Tampa/O=Test org/OU=Test OU/CN=AuthCerts TestCA",issuer: "/C=US/ST=Florida/L=tampa/O=Test org/OU=Test OU/CN=Root TestCA"
2012/06/21 22:58:47 [debug] 8901#0: *2 verify:0, error:27, depth:1, subject:"/C=US/ST=Florida/L=Tampa/O=Test org/OU=Test OU/CN=AuthCerts TestCA",issuer: "/C=US/ST=Florida/L=tampa/O=Test org/OU=Test OU/CN=Root TestCA"
2012/06/21 22:58:47 [debug] 8901#0: *2 verify:1, error:27, depth:0, subject:"/C=US/ST=Florida/L=Tampa/O=Accelerated Concepts/OU=NetBridge/CN=030202",issuer: "/C=US/ST=Florida/L=Tampa/O=Test org/OU=Test OU/CN=AuthCerts TestCA"

Jawaban:


13

Anda harus menggunakan ssl_verify_depthset arahan setidaknya 2karena rantai sertifikat Anda membutuhkan dua hop. Untuk setiap sub-CA lainnya antara root dan sertifikat klien, Anda harus menambah satu per satu.


2
Terima kasih telah berbagi solusinya. Anda mungkin ingin menandai jawaban Anda sendiri sebagai benar, ketika Anda mendapat kesempatan.
Pothi Kalimuthu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.