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"