🏠: apache

Подкручиваем HTTPS

Больше трёх лет назад я делал подобную заметку, настало время дальнейшего пересмотра настроек. Я мало смыслю в безопасности, но зато люблю, когда онлайн-проверки светятся зелёным. За прошедшее время появился протокол HTTP/2, который я включил в конце 2017-го, и TLS 1.3, а версии TLS 1.0 и 1.1 уже признаются устаревшими с марта этого года, и отправляются на заслуженную пенсию составлять компанию уже находящемуся там SSL.

Итак, чтобы выключить все протоколы, кроме самых новых и надёжных, нужно добавить в файл конфигурации Апача, например, /etc/apache2/sites-available/default-ssl.conf (у меня другой файл, который создаёт Let’s Encrypt), следующее:

# Set Forward Secrecy
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder on
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES

# Strict transport security
<IfModule mod_headers.c>
 Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
 Header always set Referrer-Policy "no-referrer-when-downgrade"
</IfModule>

С TLS 1.3, по ощущениям, действительно работает быстрее — ведь для установки защищённого соединения ему нужно меньше согласований. SSLHonorCipherOrder on — это включение расстановки приоритета алгоритмов шифрования самим сервером, что рекомендуется.

Также, я включил в Апаче поддержку OCSP Stapling — вроде бы полезная вещь — и, забавы ради, HSTS preloading, но это уже совсем необязательно.

Результат обстоятельного теста на Ssllabs после настройки:

Список других полезных тестов:

HTTP/2

Включил на этом сайте поддержку модной технологии HTTP/2, где «по сравнению с обычным порошком» всё стало быстрее, выше и сильнее.

На моём маломощном Orange Pi PC Plus это не даёт заметного прироста производительности и пришлось повозиться с установкой, потому что имеется баг в версии Apache 2.4.18, когда просто так модуль http2 включить нельзя, пришлось собирать Апач из исходников, чтобы выудить из него собранный модуль mod_http2.so, добавить в каталог модулей уже установленного Апача и только потом запустить.

Тем не менее, мне просто приятно поддерживать сайт в более-менее актуальном состоянии, а также мне нравятся красивые зелёные галочки онлайн-проверок. 🙂

Изображение без описания

Включение Forward Secrecy для Apache2

Тест SSL ssllabs.com на установленном Owncloud давал рейтинг A- и говорил, что Forward Secrecy не настроен.

Исправить это можно, вставив нижеследующие строки в /etc/apache2/sites-available/default-ssl.conf:

# Set Forward Secrecy
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on

# without RC4
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA
RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

После настройки рейтинг стал A+.