la verificación del certificado de cliente SSL falla en nginx

10

Estoy tratando de configurar la autenticación del cliente SSL en nginx. Creé una CA raíz autofirmada. Usando eso, creé una sub-CA. Usé esta sub-CA para crear un certificado para un cliente. Concatenaba la CA secundaria y la CA raíz en un nuevo archivo. Verifiqué el certificado del cliente de la siguiente manera:

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

auth-root.crt es la CA concatenada sub y root; testcert.crt es el certificado del cliente.

Apunté nginx al auth-root.crt usando ssl_client_certificate.

Cuando hago una solicitud HTTP usando el certificado testcert.crt, nginx falla. Encendí los registros de depuración y puedo ver lo siguiente:

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"
Shawn J. Goff
fuente

Respuestas:

13

Debe utilizar la ssl_verify_depthdirectiva establecida al menos 2ya que su cadena de certificados requiere dos saltos. Para cada sub-CA entre la raíz y los certificados de cliente, debe aumentar ese número en uno.

Shawn J. Goff
fuente
2
Gracias por compartir la solucion. Es posible que desee marcar su propia respuesta como correcta, cuando tenga la oportunidad.
Pothi Kalimuthu