Я пытаюсь сделать сообщение на внешний url, используя curl, externa page https, вот откат сервера, который я использую
Сервер Apache / 2.2.11 (Win32) mod_ssl / 2.2.11 OpenSSL / 0.9.8k PHP / 5.3.0
внешний url делает перенаправление на другой URL-адрес, который я отправляю в сообщении, но каждый раз, когда я пытаюсь получить эту ошибку
curl_errno = 35 (Неизвестная ошибка протокола SSL в [secure site]: 443)
поэтому я проверяю firebug для ответа, и он говорит
Не удалось загрузить источник для: http://localhost/3Party/PHP_VPC_3Party_Auth_Capture_Order_DO.php
Вот код, который я использую
ob_start(); // initialise Client URL object $ch = curl_init(); // set the URL of the VPC curl_setopt ($ch, CURLOPT_URL, $vpcURL); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, $this->postData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_exec ($ch); if (curl_error($ch)) { $this->errorMessage = "curl_errno=". curl_errno($ch) . " (" . curl_error($ch) . ")"; } curl_close ($ch);
Я думаю, что проблема заключается в том, что вы пытаетесь получить доступ к URL-адресу «http» (вместо «https») на порту 443.
Вы также можете попробовать установить версию SSL вручную:
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
Замените 3 любой версией SSL, которую использует удаленный сервер.
После нескольких недель, связанных с этой проблемой, я смог хотя бы установить соединение, я не знаю, является ли он реальным ответом, но он работает для меня, я просто добавил в пример выше, варианты использования прокси, именно так
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM ); curl_setopt($ch, CURLOPT_PROXY, 'my.proxy'); curl_setopt($ch, CURLOPT_PROXYPORT, 'my.port'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'domain\user:password');
надеюсь, это поможет
Это может также быть предпочтение версии tls / ssl для сервера. В этом случае вам нужно попробовать указать разные константы версии: https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html
Например, что сработало для меня:
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_1);