Tôi đang gặp sự cố khi định cấu hình SSL trên máy chủ Debian 6.0 32bit. Tôi tương đối mới với SSL nên hãy chịu khó với tôi. Tôi bao gồm nhiều thông tin nhất có thể.
Lưu ý: Tên miền thật đã được thay đổi để bảo vệ danh tính và tính toàn vẹn của máy chủ.
Cấu hình
Máy chủ đang chạy bằng nginx. Nó được cấu hình như sau:
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
Tôi đã xâu chuỗi chứng chỉ của mình bằng phương pháp được mô tả ở đây
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
đâu mysite.ca.crt
là chứng chỉ do cơ quan ký cấp cho tôi, và bundle.crt
chứng chỉ CA cũng do cơ quan ký của tôi gửi cho tôi. Vấn đề là tôi đã không mua chứng chỉ SSL trực tiếp từ GlobalSign mà thay vào đó thông qua nhà cung cấp dịch vụ lưu trữ của tôi, Singlehop.
Thử nghiệm
Chứng chỉ xác thực đúng trên Safari và Chrome, nhưng không xác thực trên Firefox. Cuộc tìm kiếm ban đầu cho thấy có thể là do CA gặp vấn đề.
Tôi đã khám phá câu trả lời cho một câu hỏi tương tự , nhưng không thể tìm ra giải pháp, vì tôi không thực sự hiểu mục đích của mỗi chứng chỉ.
Tôi đã sử dụng s_client của openssl để kiểm tra kết nối và nhận được kết quả đầu ra dường như cho biết vấn đề tương tự như câu hỏi tương tự . Lỗi như sau:
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
Có thể tìm thấy chi tiết đầy đủ về phản hồi của openssl (với các chứng chỉ và thông tin không cần thiết bị cắt bớt) tại đây .
Tôi cũng thấy cảnh báo:
No client certificate CA names sent
Có thể rằng đây là vấn đề? Làm cách nào để đảm bảo rằng nginx gửi các tên CA này?
Nỗ lực giải quyết vấn đề
Tôi đã cố gắng giải quyết vấn đề bằng cách tải xuống CA gốc trực tiếp từ GlobalSign, nhưng gặp lỗi tương tự. Tôi đã cập nhật CA gốc trên máy chủ Debian của mình bằng update-ca-certificates
lệnh, nhưng không có gì thay đổi. Điều này có thể là do CA được gửi từ nhà cung cấp của tôi là chính xác, vì vậy nó dẫn đến chứng chỉ bị xâu chuỗi hai lần, điều này không giúp ích được gì.
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
Bước tiếp theo
Vui lòng cho tôi biết nếu tôi có thể thử bất cứ điều gì hoặc nếu tôi chỉ định cấu hình toàn bộ không đúng.
AlphaSSL CA - SHA256 - G2
. Tuy nhiên, chuỗi của bạn cung cấp trung gianAlphaSSL CA - G2
. Tôi tin rằng bạn cần xóa chứng chỉ trung gian hiện tại (AlphaSSL CA - G2
) và thay thế nó bằng chứng chỉ có dấu vân tayae:bf:32:c3:c8:32:c7:d7...
(AlphaSSL CA - SHA256 - G2
). Ngoài ra, bạn không cần phải gửiGlobalSign Root CA
. Khách hàng phải bắt nguồn từ sự tin cậy của họ (hoặc trên trung gian).