ssl xác nhận chứng chỉ ứng dụng khách không thành công trong nginx


10

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"

Câu trả lời:


13

Bạn cần sử dụng bộ ssl_verify_depthchỉ thị ít nhất 2vì chuỗi chứng chỉ của bạn yêu cầu hai bước nhảy. Đối với mỗi CA phụ khác giữa chứng chỉ gốc và chứng chỉ ứng dụng khách, bạn cần tăng số đó lên một.


2
Cảm ơn đã chia sẻ giải pháp. Bạn có thể muốn đánh dấu câu trả lời của riêng bạn là chính xác, khi bạn có cơ hội.
Pothi Kalimuthu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.