ssl verificação de certificado de cliente falha no nginx

8

Estou tentando configurar a autenticação de cliente ssl no nginx. Eu criei uma CA raiz auto-assinada. Usando isso, criei uma sub-CA. Eu usei essa sub-CA para criar um certificado para um cliente. Eu concatenei a sub-CA e a CA raiz em um novo arquivo. Eu verifiquei o certificado do cliente da seguinte forma:

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

auth-root.crt é a CA secundária e raiz concatendada; testcert.crt é o certificado do cliente.

Eu apontei o 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. Liguei 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"
    
por Shawn J. Goff 22.06.2012 / 01:26

1 resposta

11

Você precisa usar a diretiva ssl_verify_depth definida como pelo menos 2 , pois sua cadeia de certificados exige dois saltos. Para cada outra sub-CA entre a raiz e os certificados do cliente, você precisa aumentar esse número em um.

    
por 22.06.2012 / 01:26