Это код, я использую:cURL работает в CLI, но не в PHP?
curl -k https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg
Это прекрасно работает (далее «-k» флаг необходимо для того, чтобы работать или это тайм-аут)
Затем я использую этот код в PHP:
$ch = curl_init("https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
И раз из - я попробовал тонну вариаций, но $result
всегда ложные.
Это информация PHP Curl, когда я phpinfo():
Curl поддержки включен
Curl Информация 7.38.0
Возраст Особенности
AsynchDNS No
не Debug Нет
GSS-Обсуди Нет
IDN Да
IPv6 Да
Largefile Да
NTLM Да
SPNEGO Нет
SSL Да
ССПИ Нет
krb4 Нет
libz Да
CharConv Нет
Протоколы ДИКТ, файл, FTP, FTPS, суслик, HTTP, HTTPS, IMAP, IMAPS, pop3 , pop3s, rtsp, smtp, smtps, telnet, tftp
Хост x86_64-unknown-linux-gnu
SSL версии OpenSSL/1.0.1e
ZLib Версия 1.2.3
Любые идеи, было бы весьма признателен.
UPDATE
Вот информация из curl_getinfo($ch)
:
array (
'url' => 'https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg',
'content_type' => NULL,
'http_code' => 0,
'header_size' => 0,
'request_size' => 0,
'filetime' => -1,
'ssl_verify_result' => 1,
'redirect_count' => 0,
'total_time' => 59.27538100000000298450686386786401271820068359375,
'namelookup_time' => 0.00975999999999999957867036215475309290923178195953369140625,
'connect_time' => 0.05170500000000000095923269327613525092601776123046875,
'pretransfer_time' => 0,
'size_upload' => 0,
'size_download' => 0,
'speed_download' => 0,
'speed_upload' => 0,
'download_content_length' => -1,
'upload_content_length' => -1,
'starttransfer_time' => 0,
'redirect_time' => 0,
'certinfo' =>
array (
),
'primary_ip' => '65.207.240.29',
'primary_port' => 443,
'local_ip' => '172.24.32.132',
'local_port' => 54461,
'redirect_url' => '',
)
UPDATE 2
Ответ curl_error
:
Unknown SSL protocol error in connection to www.ashleydirect.com:443
UPDATE 3 - Решение
Я хотел четко поставить решение, которое я придумал, благодаря @Valery Viktorovsky который указал, что они принимают только TLS 1.0.
раствор, а затем, чтобы добавить это:
// Set to TLS 1.0 (CURL_SSLVERSION_TLSv1_0)
curl_setopt($ch, CURLOPT_SSLVERSION, 4);
Вы за прокси? – Willian
Вы пытались 'CURLOPT_SSL_VERIFYPEER', как насчет' CURLOPT_SSL_VERIFYHOST' только для отладки? – Scuzzy
@Scuzzy Я проверил, никакой разницы. –