PHP Curl: процедуры SSL: SSL23_GET_SERVER_HELLO: причина (1112)

Я пытаюсь выполнить HTTPS-запрос:

curl_setopt($curl, CURLOPT_URL, 'https://***.com');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiesFile);
curl_setopt($curl, CURLOPT_VERBOSE, true);
$out = curl_exec($curl);

После запроса $out пуст, и я получаю этот журнал:

* About to connect() to ***.com port 443 (#0)
*   Trying *.*.*.*...
* connected
* Connected to ***.com (*.*.*.*) port 443 (#0)
* error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
* Closing connection #0

Почему?


person artem    schedule 12.08.2013    source источник
comment
какая у вас платформа и версия php и openssl? проверить phpinfo();   -  person Waygood    schedule 12.08.2013
comment
Первое попадание в Google указывает на вопрос здесь, в SO, который объясняет, почему это происходит: stackoverflow.com/ вопросов/8619706/ - как вам плохое исследование.   -  person fvu    schedule 12.08.2013
comment
@fvu, спасибо, curl_setopt($ch, CURLOPT_SSLVERSION,3); работал на меня.   -  person artem    schedule 12.08.2013
comment
@Waygood, PHP 5.4.10, OpenSSL/0.9.8x, Mac OS X 10.8.4   -  person artem    schedule 12.08.2013


Ответы (2)


Исправить:

curl_setopt($ch, CURLOPT_SSLVERSION,3); 
person artem    schedule 12.08.2013
comment
Большое спасибо, приятель. просто чтобы добавить к этому, так как лучше использовать константы, определенные SPL, например: curl_setopt($ch, CURLOPT_SSLVERSION,CURL_SSLVERSION_SSLv3); - person codarrior; 20.10.2015
comment
ошибка: SSL: не удалось создать контекст: ошибка: 140A90C4: подпрограммы SSL: SSL_CTX_new: передан нулевой метод ssl - person ninja; 10.08.2017

Если вы используете PRTG и получаете эту ошибку, перейдите в настройки и измените «SSL V2 или V3» на «SSL V3».

person Josiah    schedule 07.03.2014