Trong ứng dụng PHP của tôi, tôi sử dụng CURL và openssl của PHP, để kết nối và nói chuyện bằng cách sử dụng SOAP. Cho đến nay, máy chủ từ xa hỗ trợ SSL và TLS nhưng do lỗi "poodle", quản trị viên đã quyết định tắt SSL và chỉ sử dụng TLS. SSL được hỗ trợ cho đến cuối tháng 1.Xác minh nếu curl đang sử dụng TLS
tôi đã thay đổi mã của tôi bằng cách thêm:
curl_setopt($objCurl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
Đó trong lý thuyết nên buộc curl sử dụng TLSv1.2.
Nhưng đó là lý thuyết - tôi cần phải xác minh rằng nó thực sự sử dụng TLS - có phương pháp nào cho điều đó không? Có một phương pháp gọi là curl_getinfo(), nhưng thông tin nó sẽ trả về không phải là hữu ích cho tôi:
[url] => https://www.example.com/soap/MessagingPort
[content_type] => text/xml;charset=utf-8
[http_code] => 200
[header_size] => 293
[request_size] => 882
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.164487
[namelookup_time] => 3.4E-5
[connect_time] => 3.4E-5
[pretransfer_time] => 0.000122
[size_upload] => 604
[size_download] => 178
[speed_download] => 1082
[speed_upload] => 3672
[download_content_length] => 178
[upload_content_length] => 604
[starttransfer_time] => 0.164477
[redirect_time] => 0
Big Cảm ơn trước
Bạn có thể kiểm tra cái bắt tay với một số loại sniffer mạng, hoặc nếu bạn có thể, vô hiệu hóa SSL và TLS 1.0 và 1.1 trên máy chủ nên nó * có * để kết nối với TLS 1.2. – vcsjones
Kịch bản hoạt động trên một lưu trữ được chia sẻ để không có cách nào để đánh hơi nó.Tôi đã buộc Apache trên máy chủ dev của tôi sử dụng TLS và nó hoạt động nhưng tôi không có cách nào để kiểm tra nó trong sản xuất. Sau một vài năm sử dụng php, bạn bắt đầu không chấp nhận mọi thứ. Tôi vẫn cần một cách để có được "bạn đang sử dụng TLS" trên màn hình. Tôi cũng gặp sự cố trên Debian của mình với CURL_SSLVERSION_TLSv1_2 không được xác định và phải thay đổi dòng thành: curl_setopt ($ objCurl, CURLOPT_SSLVERSION, 6); – kayo