Как я могу отключить TLS 1.0 и 1.1 в apache?


31

Кто-нибудь знает, почему я не могу отключить tls 1.0 и tls1.1, обновив конфигурацию к этому.

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

После этого я перезагружаю apache, я делаю ssl-сканирование, используя ssllabs или comodo ssl tool, и он по-прежнему говорит, что поддерживаются tls 1.1 и 1.0. Я хотел бы удалить это?

Ответы:


45

Если у вас есть несколько виртуальных хостов TLS и вы используете указание имени сервера (SNI), разрешается использовать синтаксис SSLProtocol для каждого VirtualHost, но если на практике у вас нет виртуальных IP-хостов, параметры из первого вхождения SSLProtocolдирективы используются для всего сервера. и / или все виртуальные хосты на основе имен, поддерживающие TLS 1 .

Так что проверьте ваш основной httpd.conf(и все включенные фрагменты, например, conf.d/*.confи тому подобные включает) для большего количества вхождений SSLProtocolдирективы.

Ваш синтаксис правильный, хотя я согласен с ответом ezra-s о том, что когда вы расширяете allстенографию, вы можете немного улучшить:

 SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

просто используя:

 SSLProtocol TLSv1.2

Это все имеет смысл, однако я сделал то, что вы рекомендовали. Я grep'd мой каталог / etc / httpd для всех ссылок "SSLProtocol". Затем я обновил его до SSLProtocol TLSv1.2, затем сделал перезапуск, и он все еще показывает, что поддерживаются tls 1.0 и 1.1. Я также попробовал это на другом из моих серверов и той же самой проблеме. Любые идеи?
Дэвид

1
Ложная тревога, это действительно было кешировано сообщениями comodo и ssllabs. Кажется, теперь правильно сообщает. Спасибо.
Дэвид

3
Я думаю, что я бы рекомендовал использовать «все» с минусом для протоколов, которые вы не хотите. Будущие версии apache определяют «все» по-разному, так как разрабатываются новые стандарты и старые стандарты оказываются небезопасными.
Бобпол

Если вы используете Letsencrypt, не забудьте проверить/etc/letsencrypt/options-ssl-apache.conf
мемы

9

то, что вы указали, достаточно, он не должен показывать никаких других протоколов. Помните, SSLLABS кеширует последние тесты. Хотя знание того, что нет других протоколов, определяющих его так, как вы, является своего рода запутанным намерением.

В любом случае вы можете использовать это или просто:

SSLProtocol TLSv1.2

Есть ли разница, если вы укажете -ALL +TLSv1.2?
Чейзи Чаз

«Все» расширяется до «+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2». Я не вижу пользы от использования "-Все". На самом деле, из документации не ясно, что «-all» - даже допустимый синтаксис. Вы можете сделать [+/-] протокол, но все не протокол: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

Я тоже боролся с этой проблемой, изменение конфигов с помощью SSLProtocolдирективы не работало. В итоге я добавил следующее в конфигурацию своего виртуального хоста:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

Который работал отлично. Вы можете прочитать больше о SSLOpenSSLConfCmdдирективе здесь .


4

Отключить версию TLS1.0 в Apache.

Если у вас несколько виртуальных хостингов, вам нужно обновить все файлы конфигурации, в противном случае достаточно ssl.conf.

Чтобы проверить версию поддержки TSL:

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.0:
|   TLSv1.1:
|   TLSv1.2:

Измените файл конфигурации Apache, vi /etc/httpd/conf.d/web.confудалите все TLS и разрешите только TLS1.2.

SSLProtocol TLSv1.2

Подтвердить после изменения.

# grep SSLProtocol /etc/httpd/conf.d/web.conf
SSLProtocol TLSv1.2

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.2:
# service httpd restart

-1

Вам необходимо перезапустить службу Apache, используя следующую команду, чтобы отразить изменения.

sudo service apache2 restart

Ниже код будет работать нормально для меня, вы можете проверить эту статью, чтобы получить более подробную информацию, https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/

<VirtualHost *:443>
ServerName www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol +TLSv1.2
SSLCertificateFile /etc/apache2/certificates/certificate.crt
SSLCertificateKeyFile /etc/apache2/certificates/certificate.key 
SSLCertificateChainFile /etc/apache2/certificates/intermediate.crt
</VirtualHost>

Это ничего не отключит. Это включит только TLSv1.2. И способ перезапуска зависит от дистрибутива и даже между версиями одного и того же дистрибутива.
Джеральд Шнайдер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.