Theo kinh nghiệm của tôi, trong hầu hết các trường hợp, người xác thực là cầu thủ về chứng chỉ tự ký.
Nói chung, khi sử dụng chứng chỉ "giả", bạn nên luôn thực hiện bước bổ sung và tạo một CA giả và ký chứng nhận giả mạo với CA. Nếu không có gì khác, điều này làm cho thử nghiệm của bạn giống như một kịch bản đời thực.
Dưới đây là hướng dẫn ngắn gọn về cách làm điều này với OpenSSL:
- Tạo một CA (tự ký)
- Tạo một khóa máy chủ và csr
openssl req -out server.csr -pubkey -new -keyout server.secure.key
- Tháo cụm từ mật khẩu
openssl rsa -in server.secure.key -out server.key
- Ký chứng chỉ máy chủ với CA
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 1825
- (Đối với các chứng chỉ khác, hãy sử dụng số sê-ri hiện có
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAserial ca.srl -out server.crt -days 1825
)
Bất cứ khi nào bạn có vấn đề với bất kỳ SSL (không chỉ HTTPS) - sử dụng nguyên openssl
để gỡ lỗi bằng cách làm
openssl s_verify -connect <hostname>:<portnumber> <options>
ví dụ
openssl s_verify -connect localhost:443 -CAfile myfakeca.pem
Điều này thường giúp bạn giải quyết nhiều vấn đề với chứng chỉ thực sự của bạn thực sự không liên quan gì đến mã của bạn.
tôi thêm giấy chứng nhận giả của tôi trong tập tin /etc/ssl/certs/ca-certificates.crt và lỗi thay đổi để 'OpenID thất bại OpenID lỗi phát hiện: Lỗi lấy XRDS tài liệu: (77, 'Vấn đề với SSL CA cert (đường dẫn? Quyền truy cập?) ') ' – sdnaghdi
Lỗi này là lỗi của thư viện CURL http://curl.haxx.se/libcurl/c/libcurl-errors.html#CURLESSLCACERT. Tài liệu CURL nói rằng máy chủ bạn đang kết nối có chứng chỉ không thể được xác thực. Khi nào lỗi xảy ra, trên URL nào? – ziima