Tôi đang cố gắng thiết lập xác thực ứng dụng khách ssl trong nginx. Tôi đã ký một CA gốc tự ký. Sử dụng đó, tôi đã tạo một CA phụ. Tôi đã sử dụng CA phụ này để tạo chứng chỉ cho khách hàng. Tôi đã ghép CA phụ và CA gốc vào một tệp mới. Tôi đã xác minh chứng chỉ ứng dụng khách như sau:
$ openssl verify -purpose sslclient -CAfile auth-root.crt testcert.crt
testcert.crt: OK
auth-root.crt là CA phụ và CA gốc; testcert.crt là chứng chỉ ứng dụng khách.
Tôi đã chỉ nginx vào auth-root.crt bằng cách sử dụng ssl_client_certificate
.
Khi tôi thực hiện một yêu cầu HTTP bằng chứng chỉ testcert.crt, nginx không thành công. Tôi đã bật nhật ký gỡ lỗi và có thể thấy như sau:
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"