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.