Запуск curl с OpenSSL 0.9.8 против сервера OpenSSL 1.0.0 вызывает ошибку квитирования?

Если я запускаю завиток на компьютере, на котором запущен OpenSSL 1.0.0e, например:

curl -v https://shumaker.flexrentalsolutions.com

на машине под управлением OpenSSL 0.9.8r. Я получаю следующую ошибку:

About to connect() to shumaker.flexrentalsolutions.com port 443 (#0)
*   Trying 50.112.122.15... connected
* Connected to shumaker.flexrentalsolutions.com (50.112.122.15) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
* Closing connection #0

Если я запустил ту же команду curl на компьютере, на котором запущен OpenSSL 1.0.0e, команда завершается без каких-либо проблем.

Похоже, что рукопожатие не выполняется должным образом, по-видимому, из-за некоторой несовместимости между двумя версиями OpenSSL.

Любая идея, как это исправить?

Ответ 2

Если вы установите версию openssl в протоколе, она работает:

Для командной строки:

curl -v -3 https://shumaker.flexrentalsolutions.com

Если в php:

curl_setopt($ch, CURLOPT_SSLVERSION,3);

Ответ 3

Это нехорошее решение, но лучше, чем вращение колеса, поэтому я собираюсь добавить его здесь в качестве ответа:

Используйте модуль GnuTLS вместо mod_ssl, если можете. Это не связано с OpenSSL, так что эта ужасная, дневная проблема убирается аккуратно.

Ответ 4

Теперь из-за POODLE vulnerability многие сайты теперь отключают SSL 3.0

Вы должны использовать TLS следующим образом:

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1)

Если у вас по-прежнему есть ошибка (для Apache), проверьте, соответствует ли ваш vhost правильный параметр ServerName

Ответ 5

У меня есть эта проблема в OS X с помощью brew на некоторых серверах https, brew использует завиток внутри. Обратите внимание, что это только на OS X 10.7.5, которое застряло на OpenSSL/0.9.8r. Я бы обновил, но яблоко не поддерживает > 10.7 на этом iMac!

Мое исправление заключалось в том, чтобы обновить curl с помощью brew, который увеличивает версию до версии 1.0.2f, к счастью, brew установка curl не

brew install curl