После установки и использования apache2 с дефолтными настройками SSL можно увидеть, что уровень доверия к Вашем сертификату несколько низкий, проверить можно тут https://www.ssllabs.com/ssltest/
Повысим уровень доверия до А+ используя дефолтный конфиг
В файле /etc/apache2/sites-available/default-ssl.conf раскомментировать SSLCertificateChainFile,
SSLHonorCipherOrder
1 2 |
sed -i "s/#SSLCertificateChainFile/SSLCertificateChainFile/g" /etc/apache2/sites-available/default-ssl.conf sed -i "s/#SSLHonorCipherOrder on/SSLHonorCipherOrder on/g" /etc/apache2/mods-available/ssl.conf |
также в данном файле /etc/apache2/sites-available/default-ssl.conf заменить значение переменной SSLCipherSuite:
1 |
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 |
на
1 |
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS |
В файле /etc/apache2/mods-available/ssl.conf изменить протоколы:
1 |
sed -i "s/SSLProtocol all/SSLProtocol all -SSLv2 -SSLv3/g" /etc/apache2/mods-available/ssl.conf |
Теперь необходимо создать файл для промежуточного сертификата, т.к. мы включили его поддержку раскомментировав строку SSLCertificateChainFile ранее, если дефолтный конфиг тогда:
1 2 |
mkdir /etc/apache2/ssl.crt nano /etc/apache2/ssl.crt/server-ca.crt |
в файл необходимо включит содержимое нашего *.bundle файла, который Вы получаете при регистрации SSL сертификата.
Уже на данном этапе Вы получите уровень А, но наша с вами цель достичь А+
В файле Вашего виртхоста /etc/apache2/sites-enabled/default-ssl.conf добавляем поддержку HSTS:
1 2 3 4 5 6 |
# Optionally load the headers module: LoadModule headers_module modules/mod_headers.so <VirtualHost 10.10.10.10:443> Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;" </VirtualHost> |
Не забываем настроить любым способом принудительный редирект на https (если удовлетворяет требование Ваше web приложение), к примеру так:
1 2 3 4 5 |
<VirtualHost *:80> [...] ServerName example.com Redirect permanent / https://example.com/ </VirtualHost> |
Имейте ввиду, что директива «max-age» представлена в секундах. 31536000 секунд (12 месяцев) может быть изменена в зависимости от того, как долго администратор веб-сервера предполагает использовать сайт исключительно по HTTPS. Рекомендовано устанавливать значение «max-age» довольно большим вроде 31536000 (12 мес.) или 63072000 (24 мес.).
Больше информации на тему настроек HSTS можно найти тут
Выполняем reload конфигурации apache2 и прогоняем через ssllabs тест повторно: