file_get_contents хост https работает отлично, за исключением конкретного хоста (тестовый сервер api из какой-то компании - ip whitelisted, не может дать вам URL для тестирования). Это исключает не загруженные модули https и другие ошибки начальной настройки.
Я тестировал с несколькими установками PHP, все в версиях v5.3.3, 32bits, 32bits Debian.
Запрос работает с cURL, но только при установке curl_setopt($curl,
CURLOPT_SSL_VERIFYPEER, 0);
. Однако установка verify_peer"=>false
в контексте для file_get_contents, по-видимому, не имеет значения.
С файлом_get_contents, тот же самый запрос (тот же URL-адрес, то же XML-POST-данные) терпит неудачу с SSL: Connection 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));
.
Кто-нибудь сталкивался с файлом_get_contents? Любые идеи отладки?