Vì nhiều lý do khác nhau, tôi đã tạo một máy chủ HTTP đơn giản và hỗ trợ SSL bổ sung qua OpenSSL. Tôi đang sử dụng chứng chỉ tự ký. IE, Firefox và Chrome vui vẻ tải nội dung miễn là tôi thêm CA vào CA gốc đáng tin cậy.wget, các chứng chỉ tự ký và máy chủ HTTPS tùy chỉnh
Tuy nhiên, wget (ngay cả khi sử dụng --no-check-certificate
cờ) báo cáo:
OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Nếu tôi chạy client OpenSSL chống lại máy chủ của tôi sử dụng:
openssl s_client -connect dnvista:82 -debug
tôi nhận được trở lại: xác minh lỗi: num = 19: chứng chỉ tự ký trong chuỗi chứng chỉ xác minh trở lại: 0 và sau đó
5852:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:.\ssl\s3_pkt.c:1060:SSL alert number 40
5852:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:.\ssl\s23_lib.c:188:
Thực hiện wget và ứng dụng OpenSSL đơn giản là không hoạt động với chứng chỉ tự ký?
UPDATE:
Đối với bất cứ ai mà đến cùng sau, thêm mã này giúp với khách hàng OpenSSL và Firefox:
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
SSL_CTX_set_tmp_ecdh(ctx, ecdh);
EC_KEY_free(ecdh);
Xin chào. Tôi đã nhìn thấy rất nhiều ý kiến như thế này, "Turn the check-off" trong nhiều từ. Đó là một ý tưởng ** thực sự _BAD_ **. Một chút giống như đua xe đường phố với lốp hói trên đường ướt. Tôi thất vọng câu trả lời này có một đánh dấu 'đánh dấu'. – will
sẽ: Tôi đồng ý, việc kiểm tra thường là một ý tưởng tồi. Câu trả lời của tôi cho thấy một cách để tạo chứng chỉ CA được khách hàng biết, để kiểm tra có thể được thực hiện đúng. –