file_get_contents với máy chủ https hoạt động tốt, ngoại trừ một máy chủ cụ thể (kiểm tra máy chủ api từ một số công ty - danh sách trắng ip, không thể cung cấp cho bạn URL để kiểm tra). Quy tắc này không được tải https mô-đun và các lỗi thiết lập ban đầu khác.file_get_contents bỏ qua verify_peer => false?
Tôi đã thử nghiệm với nhiều cài đặt PHP, tất cả ở v5.3.3, 32 bit, 32 bit Debian.
Yêu cầu hoạt động với cURL, nhưng chỉ khi đặt curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
. Tuy nhiên, thiết lập verify_peer"=>false
trên ngữ cảnh cho file_get_contents dường như không tạo ra sự khác biệt nào.
Với đào tạo Quản lý, cùng yêu cầu chính xác (giống URL, cùng một dữ liệu POST XML) không thành công với SSL: Kết nối reset by peer:
$arrContextOptions=array(
"http" => array(
"method" => "POST",
"header" =>
"Content-Type: application/xml; charset=utf-8;\r\n".
"Connection: close\r\n",
"ignore_errors" => true,
"timeout" => (float)30.0,
"content" => $strRequestXML,
),
"ssl"=>array(
"allow_self_signed"=>true,
"verify_peer"=>false,
),
);
file_get_contents("https://somedomain:2000/abc/", false, stream_context_create($arrContextOptions));
.
Có ai gặp phải điều này với tệp_get_contents không? Bất kỳ ý tưởng nào về cách gỡ lỗi?
Bạn thử thiết lập 'allow_self_signed' false? – Repox
Chỉ cần thử nó, cùng một lỗi. –
Tại sao không chỉ sử dụng cURL? –