Tôi đã sử dụng khối mã sau để thu thập dữ liệu từ trang web HTTPS bằng cách sử dụng cURL.Lỗi cURL (35): lỗi: 14077458: Thường trình SSL: SSL23_GET_SERVER_HELLO: tlsv1 tên không được công nhận
$q = 'https://www.example.org/'; // for example
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $q);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$json = curl_exec($ch);
cURL hiển thị lỗi sau
error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 unrecognized name
này có thể liên quan đến phiên bản OpenSSL cũ hơn, nhưng như các trang web là một trong Shared hosting, cài đặt máy chủ bên không thể thay đổi vào lúc này. Tất cả những gì tôi có thể làm là thay đổi các tham số cURL.
Tôi đã kiểm tra ở đây https://www.ssllabs.com/ssltest/analyze.html để xem các giao thức có sẵn cho máy chủ đó, không tìm thấy SSL3 và SSL2, nhưng TLS 1.2, TLS 1.1 và TLS 1.0 khả dụng. Tìm kiếm trên Google, tôi đã tìm thấy phiên bản SSL tốt nhất không chỉ định thực sự tự động thương lượng mức tốt nhất để sử dụng. Mặc dù, tôi đã thử với thiết lập phiên bản TLS trong CURLOPT_SSLVERSION (như sau), nhưng cùng một lỗi xảy ra.
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
Tôi đã cố gắng rất nhiều trong vài ngày qua, nhưng mọi nỗ lực đều vô ích.
Tôi đã cố gắng giải thích tất cả những gì tôi đã làm, nhưng bất cứ ai hãy hỏi xem có cần thêm thông tin hay không. Mọi sự trợ giúp sẽ rất được trân trọng.
Thanks a lot