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

Если я запускаю curl против машины, на которой работает OpenSSL 1.0.0 e, например:

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

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

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.0 e, команда завершается без каких-либо проблем.

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

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

5 ответов


Это ошибка (OpenSSL), которая все еще открыта. Подробности были опубликованы в этом отчет об ошибке curl.

дополнительные детали опубликовано в OpenSSL-dev на "Манча".


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

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

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

Если в php:

curl_setopt($ch, CURLOPT_SSLVERSION,3);

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

вы должны использовать TLS такой :

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1)

если у вас все еще есть ошибка (для Apache), проверьте, если ваш vhost получить правильную настройку ServerName


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

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


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

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

brew install curl