curl не получает содержимое сайта на PHP через HTTPS

1

Я прочитал весь интернет и попробовал практически все решения, ничего не работает.

Если я запустил curl http://... site, он работает, но если я запустил https://... это не так.

Я запускаю centos 7 с php 5.6

Ничего не происходит, если я попробую известный ответ с

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Единственное, что может помочь мне получить сайт, это

curl -4svo/dev/null --ciphers ecdhe_ecdsa_aes_128_sha https://.....

однако, поскольку мне нужно отправить свои заголовки, это не решение, мне нужно что-то совместимое с curl_setopt.

ОБНОВЛЕНИЕ ОШИБКИ

Я получаю это: curl: (35) Не удается безопасно связываться со сверстниками: нет общих алгоритмов шифрования.

Теги:
curl

2 ответа

1
Лучший ответ

Это волшебная линия!

curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'ecdhe_ecdsa_aes_128_sha');

1

Я думаю, эта проблема вызвана версией cURL, не поддерживающей 256-битные SSL-сертификаты ECC и алгоритмом подписи ECDSA (который используется CloudFlare). Вы можете проверить, поддерживает ли ваша версия cURL это шифрование, запустив:

curl -1IsS --ciphers ecdhe_ecdsa_aes_128_sha https://sslspdy.com

Если вы получаете следующее, то ваш cURL устарел:

curl: (59) Unknown cipher in list: ecdhe_ecdsa_aes_128_sha
  • 0
    HTTP / 1.1 200 OK Сервер: cloudflare-nginx Дата: среда, 28 октября 2015 10:42:24 GMT
  • 0
    Я уже бьюсь головой об стены этой штукой за последние 12 часов
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню