Tôi đã sao chép tệp PEM vào/usr/local/share/ca-certificates/và chạy cập nhật-ca-chứng chỉ và tôi đã xác minh rằng chứng chỉ kết quả hiện được bao gồm trong /etc/ssl/certs/ca-certificates.crt đó là tập tin được in bởi curl-config --ca. Tôi cũng đã xác minh rằng chứng chỉ được in bởi openssl s_client -connect example.com:443 giống với tệp PEM của tôi. Tuy nhiên, tôi vẫn tiếp tục nhận được thông báo "lỗi: 14090086: SSL thường: SSL3_GET_SERVER_CERTIFICATE: xác minh chứng chỉ không thành công". Điều này xảy ra ngay cả khi tôi sử dụng tùy chọn --cacert của curl như được mô tả tại http://curl.haxx.se/docs/sslcerts.html để cho biết nó sử dụng chứng chỉ nào.Tại sao curl không nhận dạng chứng chỉ SSL tự ký?
Nó hoạt động nếu tôi vô hiệu hóa xác minh chứng chỉ hoàn toàn với curl -k, nhưng tôi không muốn làm điều đó bởi vì tôi đang cố gắng để viết một khai thác thử nghiệm đó là nghĩa vụ phải kiểm tra SSL đúng cách.
Nó hoạt động tốt nếu tôi truy cập cùng một URL trong lynx, thường phàn nàn nếu có bất kỳ lỗi SSL nào. Nhưng tôi không thể sử dụng Lynx cho việc khai thác thử nghiệm này, trừ khi tôi có thể tìm ra cách nào đó để sử dụng AsyncHTTPClient của Tornado thay vì libcurl. Và nó dường như không có ý nghĩa gì khi cài đặt chứng chỉ tự ký đáp ứng Lynx nhưng không làm cong.
Tôi đang sử dụng Ubuntu 12.04 LTS trong VirtualBox hỗ trợ âm đạo; nó có curl 7.22.0. Proxy chấm dứt SSL là nginx/1.3.13 chạy trên cùng một máy và tên miền được trỏ đến 127.0.0.1 bởi một mục nhập trong/etc/hosts.
Bất kỳ manh mối nào về vấn đề này có thể là gì? Cảm ơn.