Запуск 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