У меня интересная проблема с двумя серверами Linux с Apache 2.4.9
: я пытаюсь отключить SSL v3 и RC4, чтобы заблокировать POODLE и сохранить SSL Labs счастливый. Однако всякий раз, когда я выключаю SSL v3, я также теряю TLS 1.1 и 1.2 (сохраняя только TLS 1.0).
Вот моя версия Apache:
$ apachectl -v
Server version: Apache/2.4.9 (Unix)
Server built: Mar 24 2014 10:51:20
И OpenSSL:
$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
И Linux:
$ cat /proc/version
Linux version 2.6.32-279.11.1.el6.x86_64 (mockbuild@x86-009.build.bos.redhat.com) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Sat Sep 22 07:10:26 EDT 2012
Вот что я пробовал:
# TLS 1.0 only
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite MEDIUM:HIGH:!RC4
Я ожидал, что именно этот первый будет работать, и я успешно использовал его в других установках Apache. Результат - только TLS 1.0.
# SSLv3, TLS1.0, 1.1, 1.2
SSLProtocol all -SSLv2
SSLCipherSuite MEDIUM:HIGH:!RC4
Это отключает RC4 и сохраняет TLS 1.0, 1.1 и 1.2, но SSL v3 также включен.
Ну наконец то:
# TLS 1.2 only
SSLProtocol all
SSLCipherSuite MEDIUM:HIGH:!RC4:!SSLv3
Эта комбинация приводит только к TLS 1.2 (без TLS 1.0 или 1.1, без SSL).
Я думаю, что это ошибка в mod_ssl в моем Apache. Мне любопытно, видел ли кто-нибудь это здесь, и если вы нашли способ включить TLS 1.0, 1.1 и 1.2, но отключить SSL.
Спасибо.
У вас здесь происходит пара вещей. Во-первых, вы определяете версии протокола безопасности транспортного уровня, которые вы собираетесь поддерживать, во-вторых, вы определяете поддерживаемые шифры, которые затем будут согласованы во время фазы приветствия клиента подтверждения TLS.
На основе документации apache для 2.4 здесь: https://httpd.apache.org/docs/2.4/mod/mod_ssl.html
Вам необходимо определить поддерживаемые версии TLS со строкой, которая выглядит следующим образом в вашем контейнере vhost:
SSLProtocol TLSv1.1 TLSv1.2
Затем вам необходимо определить свои шифры в контейнере vhost (в качестве примера приведено ниже):
SSLCipherSuite AES+kRSA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
Предотвращает ли использование MEDIUM включение TLS 1.1 и 1.2? Ниже мой конфиг. Я не помню, почему я принудительно использовал порядок шифрования. Я только что проверил Qualys и он показывает, что включен только TLS 1.0, 1.1, 1.2.
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK