nginxでsslクライアント証明書の検証が失敗する


10

nginxでsslクライアント認証をセットアップしようとしています。自己署名したルートCAを作成しました。それを使用して、サブCAを作成しました。このサブCAを使用して、クライアントの証明書を作成しました。サブCAとルートCAを新しいファイルに連結しました。クライアント証明書を次のように確認しました。

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

auth-root.crtは、連結されたサブCAとルートCAです。testcert.crtはクライアント証明書です。

私はnginxにを使用してauth-root.crtを指定しましたssl_client_certificate

testcert.crt証明書を使用してHTTPリクエストを行うと、nginxが失敗します。デバッグログをオンにすると、次のように表示されます。

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"

回答:


13

証明書チェーンには2つのホップが必要なため、ssl_verify_depth少なくともこのディレクティブセットを使用する必要があり2ます。ルート証明書とクライアント証明書の間の他のサブCAごとに、その数を1ずつ増やす必要があります。


2
ソリューションを共有していただきありがとうございます。機会があれば、自分の答えを正解としてマークすることもできます。
Pothi Kalimuthu 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.