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

Режим ssl Apache при использовании установки завершения SSL с Haproxy?
Отключение RC4 в наборе шифров SSL сервера Apache
Пересылка: на localhost: 80 / dir /(apache)
"mvn" не распознается как внутренняя или внешняя команда
ошибка установки apache-libapache2-svn не удается
Настройка Apache для внешнего доступа
Попытка запустить apache2 в режиме отладки запускает службу apache2 автоматически
Как настроить сервер Apache, чтобы быть общедоступным, когда он работает на ноутбуке через Wi-Fi?
Правильное перенаправление Apache с http на https
Обновление Apache приводит к сбою подтверждения связи SSL с клиентом Java
Почему apache не переходит по моим символическим ссылкам?
Настройка Apache2 для автоматического перенаправления вызовов на порт 80 на порт 443
Iptables Captive Portal перенаправление http, но позволяют https пройти через
не удалось открыть поток слишком много открытых файлов-php 1024 максимальный лимит-Redhat-почему не работает новый лимит?
Apache httpd простой метод для возврата удаленного адреса

Отключение RC4 в наборе шифров SSL сервера Apache

пожалуйста, посмотрите разделы редактирования в моем собственном ответе; они содержат объяснение этой головоломки.

Я пытаюсь отключить RC4 для сервера Apache 2.2.9, работающего на CentOS 6.5 VPS, и я не могу добиться успеха.

недавно приобретенный сертификат Бизнес-проверки установлен и SSL-соединения работают нормально, но я хотел, чтобы настроить вещи, как можно лучше, чтобы "упрочнить безопасность", как некоторые учебники положить его.

проверка конфигурация с лабораториями Qualys SSL, страница результатов показывает "этот сервер принимает шифр 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 в VM: I все еще не имеют RC4 среди шифров, которые дают да.

5
задан AbVog
источник

5 ответов

при установке обновленного сертификата, я обнаружил, что проблема была вызвана задание (для домена и для каждого поддомена) в ISPConfig весь набор данных, необходимых для HTTPS: сертификат, закрытого ключа, цепочке сертификации и т. д.

иначе говоря, удаление набора данных привело к тесту Qualys для оценки домена A и в то же время удалить предупреждения о RC4. Собираем детали обратно приводит к предупреждениям и класс снова ограничен Б , что не оставляет места сомнениям относительно причинно-следственной связи.

это как если бы предоставление подробностей для каждого vhost каким-то образом создало новую среду, в которой некоторые значения по умолчанию переопределили набор шифров, который я указал в ssl.конф. Сверхъестественный.

решение состоит в том, чтобы добавить спецификацию SSLCipherSuite в директивах Apache textarea для каждого vhost. Это то, что у меня есть в конфигурации, которая дает мне оценку A:

SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder on
# Compression is disabled by default on my distribution (CentOS 6)
# SSLCompression off 
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

EDIT (2017-05-16): An дополнительная информация об этой проблеме: указание SSLCipherSuite является обязательным. Я не могу понять, почему эта конкретная директива, хотя и указана на уровне сервера, автоматически не применяется к конфигурациям виртуальных хостов. Я запускаю Apache 2.2.15 на CentOS 6.9.

EDIT (2018-06-18): больше информации. Я только что обнаружил, что директива SSLCipherSuite может быть указана только один раз, и она будет применяться ко всем виртуальным хостам: в базовом файле конфигурации mod_ssl (на CentOS 6, файл найден в /etc/httpd/conf.d/ssl.conf), вы просто должны установить его за пределами виртуального хоста по умолчанию. В Apache 2.2 документации говорится, что по умолчанию эта директива SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP. Я считаю, что именно отсюда исходит шифр RC4: при отсутствии какой-либо спецификации, что имело место для меня, поскольку никакой спецификации не было в "глобальном" контексте, применяется значение по умолчанию. Это понимание заканчивает то, что было для меня загадкой. По иронии судьбы, я переключитесь на CentOS 7, когда я найду это объяснение! ХТ.

15
отвечен AbVog 2018-06-18 22:10:02
источник
SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2:!SSLv3
                                                                    ^^^^^^^

плохая идея. Отключение всех шифров SSLv3 приводит к отключению шифров, используемых с TLS1.0 и TLS1.1 и оставляет только несколько шифров, недавно введенных с TLS1.2 (Если ваш сервер поддерживает TLS1.2)

поэтому я как-то потерял, почему веб-сайты проверки SSL говорят мне, что "сервер принимает RC4". Они даже перечисляют следующие шифры как принятые:

убедитесь, что локальные и внешние тесты имеют одинаковый доступ сервер (IP-адрес). Я видел много сайтов, где example.com на другой хост, чем www.example.com и поэтому тесты отличаются.

5
отвечен Steffen Ullrich 2015-01-19 18:04:12
источник

отель Qualys SSL в лаборатории, кажется, очень чувствительны к хосты по умолчанию и т. д. Проверьте, что все ваши виртуальные хосты HTTPS на этом IP-адресе используют одни и те же настройки (кроме файлов сертификатов), у меня была аналогичная проблема, когда некоторые тесты Qualys тестировались против моего целевого VirtualHost, а некоторые тесты, казалось, подбирали VirtualHost по умолчанию. У моего целевого vhost был включен только один шифр, но Qualys находил гораздо больший список из vhost по умолчанию.

Я также нашел более красивый скрипт здесь это дает более подробную информацию о тестах SSL.

2
отвечен Geoff 2015-01-27 01:44:39
источник

просто просматривал это для одного из моих сайтов. На основе ответа @AbVog я обнаружил, что мои директивы были фактически только внутри vhost по умолчанию. Когда я перенес директивы в глобальный контекст, все было хорошо.

в стороне я тоже наткнулся https://cipherli.st/ который имеет хороший список конфигурации SSL для множества разных пакетов. Текущая рекомендация для apache следующая:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

# Requires Apache >= 2.4
SSLCompression off 
SSLSessionTickets Off
SSLUseStapling on 
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 
2
отвечен boyvinall 2016-03-31 13:56:33
источник

на моей Fedora 25 с Apache/2.4.25 шифры обрабатываются крипто-политиками (см. /etc/cryptopolicies/backends). Настройка по умолчанию имеет RC4 полностью отключен, так что нет необходимости фальсификации с шифрами в установке Apache. За исключением того, что вы используете последнюю версию ssl.conf как это не установлено по умолчанию, но оставлено как ssl.конф.rpmnew в конф.каталог д'.

для того, чтобы настроить SSL я просто должен был указать сертификаты, Имя_сервера и DocumentRoot. Для В то время это.

SSLCertificateFile /etc/letsencrypt/live/mail.xxxx.dk/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.xxxx.dk/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mail.xxxx.dk/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/mail.xxxx.dk/fullchain.pem
ServerName mail.xxxx.dk:443
DocumentRoot "/usr/share/squirrelmail"
0
отвечен John Damm Sørensen 2017-01-25 07:14:52
источник

Другие вопросы apache-http-server openssl ssl