Програма перевірки сертифіката клієнта ssl не працює в nginx


11

Я намагаюся налаштувати аутентифікацію клієнта ssl в nginx. Я створив самопідписаний корінь CA. Використовуючи це, я створив суб-ЦА. Я використовував цей суб-CA для створення сертифіката для клієнта. Я об'єднав суб-CA і кореневий CA в новий файл. Я підтвердив клієнтський сертифікат наступним чином:

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

auth-root.crt - це об'єднаний під-і кореневий CA; testcert.crt - сертифікат клієнта.

Я вказав nginx на auth-root.crt, використовуючи ssl_client_certificate.

Коли я роблю запит HTTP, використовуючи сертифікат testcert.crt, nginx виходить з ладу. Я ввімкнув журнали налагодження і бачу таке:

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"

Відповіді:


13

Вам потрібно використовувати ssl_verify_depthдирективу, встановлену принаймні, 2оскільки для вашої ланцюжка сертифікатів потрібні два перестрибування. Для кожного другого суб-CA між кореневими та клієнтськими сертифікатами потрібно збільшити це число на одиницю.


2
Дякуємо, що поділилися рішенням. Ви, можливо, захочете позначити власну відповідь правильною, коли отримаєте шанс.
Поті Калімуту
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.