Как использовать ECDHE шифры в PHP CURL?

я использовал nmap для сканирования, это результат:

введите описание изображения здесь

Похоже, они поддерживают только ECDHE, из вывода openssl_get_cipher_methods()нет ECDHE шифра! Итак, мой вопрос, как я могу подключиться к удаленному серверу с помощью клиента PHP CURL?

Это мой пример кода PHP, который возвращается ложный с сообщением:

«Неизвестный шифр в списке:
ECDHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-SHA256: ECDHE-RSA-AES128- ША»,
код ошибки 59 (Не удалось использовать указанный шифр.)

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA");
curl_setopt($ch, CURLOPT_SSLVERSION, 6);
curl_setopt($ch, CURLOPT_URL, "xxxxxxxxxxxxxxx");
var_dump(curl_exec($ch));
var_dump(curl_error($ch));
var_dump(curl_errno($ch));

Я использую PHP 5.3.29, openssl 1.0.1e-fips 11 февраля 2013 г.

0

Решение

Формат CURLOPT_SSL_CIPHER_LIST зависит от библиотеки, с которой связан ваш cURL. Если вы работаете в Linux на основе RedHat, то это NSS, а не GNUTLS (Ubuntu) или OpenSSL, поэтому вам нужно будет соответствующим образом преобразовать имена.

Следующий вопрос должен помочь вам:

https://unix.stackexchange.com/questions/208437/how-to-convert-ssl-ciphers-to-curl-format

0

Другие решения

Я нашел основную причину, я запускаю CentOS с пакетом NSS 3.19. По умолчанию эта версия не включает шифры ECC (ECDHE — один из шифров ECC), исправлена ​​после обновления до NSS 3.21+.

https://bugzilla.mozilla.org/show_bug.cgi?id=1205688
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.21_release_notes
https://tools.ietf.org/html/rfc4492
0

По вопросам рекламы [email protected]