Пожалуйста, смотрите раздел РЕДАКТИРОВАТЬ в моем собственном ответе; они содержат объяснение этой головоломки.
Я пытаюсь отключить RC4 для сервера Apache 2.2.9, работающего на CentOS 6.5 VPS, и не могу добиться успеха.
Установлен недавно приобретенный бизнес-проверенный сертификат, и SSL-соединения работают нормально, но я хотел как можно лучше настроить вещи, чтобы "усилить безопасность", как утверждают некоторые учебники.
При проверке конфигурации с помощью Qualys SSL Labs на странице результатов отображается сообщение «Этот сервер принимает шифр RC4, который является слабым. Оценка ограничена до ".
Тем не менее, я поместил это в ssl.conf:
SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2:!SSLv3
Я сохранил сценарий, приведенный в ответе на этот вопрос, в файл с именем test-ssl-ciphers.sh и изменил IP-адрес на адрес обратной связи. Это результат ./test-ssl-ciphers.sh | grep -i "RC4"
:
Testing ECDHE-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDHE-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing AECDH-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing ECDH-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing PSK-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-MD5...NO (no ciphers available)
Testing EXP-ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-KRB5-RC4-SHA...NO (no ciphers available)
Testing EXP-KRB5-RC4-MD5...NO (no ciphers available)
Каждая из этих строк содержит "НЕТ", что, согласно сценарию, означает, что сервер не поддерживает указанную комбинацию шифров.
Более того, команда grep -i -r "RC4" /etc/httpd
выдает мне только вышеупомянутый файл ssl.conf.
Кроме того, запуск openssl ciphers -V
в моем наборе шифров вообще не показывает шифров RC4, что имеет смысл, учитывая строку конфигурации.
Поэтому я почему-то растерялся относительно того, почему веб-сайты проверки SSL говорят мне, что "сервер принимает RC4". Они даже перечисляют следующие шифры как принятые:
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
У кого-нибудь есть возможное объяснение? Что я делаю не так? Может быть, есть другое место, где настраивается поддержка RC4 или "принятие"?
Благодарю.
[ EDIT ] Используя CentOS 6.6 на домашней виртуальной машине, я снова запустил скрипт для своего VPS, используя его доменное имя вместо адреса обратной связи. Эта настройка подразумевает, что список шифров предоставляется экземпляром openssl в виртуальной машине: у меня все еще нет RC4 среди шифров, которые дают YES.