Включение TLS 1.0? Невозможно безопасно общаться с одноранговым узлом: нет алгоритмов шифрования соединения
Уже более года я работаю на веб-сайте с фотографиями, который позволяет клиентам заказывать распечатки, которые впоследствии выполняются типографией. Заказы размещаются в формате XML по указанному URL. Недавно мне стало известно, что заказы не публикуются, и я обнаружил следующую ошибку при проверке журналов сервера:
[Mon Dec 01 21:17:38 2014] [error] [client XXX] cURL error: [35] Cannot communicate securely with peer: no common encryption algorithm(s).
Техническая команда для типографии смогла дать мне какое-то руководство, но я все еще растерялся. Первоначально они сообщили мне, что сервер в настоящее время поддерживает только SSLv2, SSLv3 и TLS 1.0, и что вполне вероятно, что у нас только TLS 1.2 включен с нашей стороны. Они утверждали, что ничего не изменилось с их стороны, и я лично знаю, что ничто не изменилось в нашей в течение нескольких месяцев.
Когда я впервые столкнулся с проблемой, я попытался обновить серверные пакеты, но это не помогло решить проблему. Позже я подумал, что, возможно, проблема заключалась в группах безопасности для экземпляра Amazon EC2, но я не совсем уверен. Как мне включить TLS 1.0, если он еще не включен? Как мне проверить, какие ценные бумаги транспортного уровня и уровни защищенных сокетов в настоящее время включены? Любые другие предложения?
2 ответа
Если вы можете направить трафик через HTTP-прокси, вы можете установить Fiddler и посмотреть, что находится в информации о согласовании TLS:
По умолчанию на большинстве систем libcurl уже хорошо говорит по TLS 1.0, если этого хочет сервер.
Я скорее подозреваю, что ваша проблема в том, что сервер настаивает на использовании шифра для этого URL, на который libcurl не согласится. В частности, я подозреваю, что это шифр, использующий RC4, а RC4 считается небезопасным и по умолчанию отключен libcurl.