la verifica del certificato client SSL non riesce in nginx


10

Sto cercando di configurare l'autenticazione client SSL in nginx. Ho creato una CA radice autofirmata. Usando quello, ho creato una CA secondaria. Ho usato questa CA secondaria per creare un certificato per un client. Ho concatenato la CA secondaria e la CA principale in un nuovo file. Ho verificato il certificato client come segue:

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

auth-root.crt è la CA secondaria e root concatendata; testcert.crt è il certificato client.

Ho indicato nginx con auth-root.crt usando ssl_client_certificate.

Quando faccio una richiesta HTTP usando il certificato testcert.crt, nginx fallisce. Ho attivato i log di debug e posso vedere quanto segue:

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"

Risposte:


13

È necessario utilizzare la ssl_verify_depthdirettiva impostata almeno 2perché la catena di certificati richiede due hop. Per ogni altra CA secondaria tra i certificati radice e client, è necessario aumentare quel numero di uno.


2
Grazie per aver condiviso la soluzione. Potresti voler contrassegnare la tua risposta come corretta, quando ne hai la possibilità.
Pothi Kalimuthu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.