A verificação de certificação do cliente ssl falha no nginx


10

Estou tentando configurar a autenticação do cliente ssl no nginx. Criei uma autoridade de certificação raiz autoassinada. Usando isso, criei uma sub-CA. Eu usei essa sub-CA para criar um certificado para um cliente. Concatenei a sub CA e a CA raiz em um novo arquivo. Eu verifiquei o certificado do cliente da seguinte maneira:

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

auth-root.crt é a autoridade de certificação sub e raiz concatenada; testcert.crt é o certificado do cliente.

Apontei nginx para o auth-root.crt usando ssl_client_certificate.

Quando faço uma solicitação HTTP usando o certificado testcert.crt, o nginx falha. Ativei os logs de depuração e posso ver o seguinte:

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"

Respostas:


13

Você precisa usar a ssl_verify_depthdiretiva configurada para pelo menos 2uma vez que sua cadeia de certificados requer dois saltos. Para cada sub-CA entre os certificados raiz e cliente, é necessário aumentar esse número em um.


2
Obrigado por compartilhar a solução. Você pode marcar sua própria resposta como correta, quando puder.
Pothi Kalimuthu
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.