Die Überprüfung des SSL-Client-Zertifikats schlägt in Nginx fehl

10

Ich versuche, die SSL-Client-Authentifizierung in Nginx einzurichten. Ich habe eine selbstsignierte Stammzertifizierungsstelle erstellt. Damit habe ich eine Unter-CA erstellt. Ich habe diese Unterzertifizierungsstelle verwendet, um ein Zertifikat für einen Client zu erstellen. Ich habe die Unterzertifizierungsstelle und die Stammzertifizierungsstelle in eine neue Datei verkettet. Ich habe das Client-Zertifikat wie folgt überprüft:

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

auth-root.crt ist die verkettete Unter- und Stammzertifizierungsstelle. testcert.crt ist das Client-Zertifikat.

Ich habe nginx mit auf auth-root.crt verwiesen ssl_client_certificate.

Wenn ich eine HTTP-Anfrage mit dem Zertifikat testcert.crt stelle, schlägt nginx fehl. Ich habe Debug-Protokolle aktiviert und kann Folgendes sehen:

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
quelle

Antworten:

13

Sie müssen den ssl_verify_depthDirektivensatz mindestens verwenden, 2da Ihre Zertifikatkette zwei Hops erfordert. Für jede andere Unterzertifizierungsstelle zwischen dem Stammzertifikat und den Clientzertifikaten müssen Sie diese Anzahl um eins erhöhen.

Shawn J. Goff
quelle
2
Vielen Dank, dass Sie die Lösung geteilt haben. Vielleicht möchten Sie Ihre eigene Antwort als richtig markieren, wenn Sie eine Chance bekommen.
Pothi Kalimuthu