Включение TLS1.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 и TLS1.0 только, и что было вероятно, что у нас только есть TLS1.2, включенный с нашей стороны. Они утверждали, что ничто не было изменено на их конце, и я лично знаю, что ничто не было изменено на нашем в течение многих месяцев. Когда я первоначально встретился с проблемой, я попытался обновить пакеты сервера, но этому не удалось разрешить проблему. Позже я думал, что, возможно, проблема вращалась вокруг групп безопасности для экземпляра Amazon EC2, но я не совсем уверен. Как я пошел бы о включении TLS1.0, предположив, что это уже не включено? Как я проверил бы то, какие ценные бумаги транспортного уровня и уровни защищенных сокетов в настоящее время включаются? Какие-либо другие предложения?

0
задан 26 May 2015 в 08:04
1 ответ

Некоторые версии OpenSSL были сломаны в Ubuntu из-за проблем в OpenSSL, а не в самой Ubuntu и, возможно, были сломаны и в других дистрибутивах, таких как Amazon Linux, при подключении к древнему серверу, который может делать не лучше TLS 1. 0, если только вы явно не форсируете его, как предлагал выше @AndySmith (опция openssl s_client -connect, чтобы попытаться увидеть, как он работает из командной строки, в данном случае была бы -tls1).

Я не вижу этого в вашем вопросе, но я предполагаю, что вы используете PHP. Я не эксперт по PHP, но похоже, что ваш обходной путь может заключаться в использовании CURLOPT_SSLVERSION для того, чтобы заставить CURL_SSLVERSION_TLSv1_0.

Если ваш поставщик может сделать не лучше, чем TLS 1.0, и (что еще хуже) по-прежнему поддерживает SSLv2 и SSLv3, им действительно должно быть стыдно. Даже документация PHP советует против старых версий:

Ваша лучшая ставка - не устанавливать это и позволить ему использовать значение по умолчанию. Установка в 2 или 3 очень опасна, учитывая известные уязвимости в SSLv2 и SSLv3

Однако, у меня есть система, которая подключается к старой аппаратуре балансировки нагрузки, и заставлять TLS 1.0 - это именно то, что мне нужно сделать, чтобы она заработала, даже если она "должна" работать в любом случае... и она отлично работала, начиная со старых версий OpenSSL. Обновление безопасности в вашей системе, возможно, внесло изменения в поведение, обновив вас до версии OpenSSL с этой проблемой.

.
1
ответ дан 4 December 2019 в 17:06

Теги

Похожие вопросы