Получаем A+ на ssllabs.com (Apache 2.4)

Опубликовано: 3 декабря 2020 в 12:55

Появилась задача, обновить ssl сертификат на одном из сайтов. В прошлом году настраивал его, тестировал на ssllabs, была оценка A. Сегодня после продления сертификата решил протестировать сайт, выдал оценку B.

В течении года были некоторые работы с веб сервером, в результате которых видимо сменились дерективы к конфигурации хоста.

Что было сделано:

  1. исключены не безопасные протоколы
  2. настроены предпочитаемые алгоритмы шифрования
  3. настройка HTST
  4. добавлены CAA записи для домена

Попутно обновили OpenSSL.

1) Исключены не безопасные протоколы

В настройках виртуального хоста, добавлена деректива SSLProtocol в которые введены ограничения по доступным протоколом, в частности исключены SSLv2,3 и TLSv1,1.1

2) Настроены предпочитаемые алгоритмы шифрования

Добавлена деректива SSLHonorCipherOrder  для использования предпочтений сервера, в выборе используемого алгоритма шифрования, так же опция ON,  определяет дерективу SSLCipherSuite  как упорядоченный список значений алгоритмов для шифрования соединения.

В SSLCipherSuite запрещены все алгоритмы шифрования, кроме описанных. Порядок их применения с лева на право.

3) Настройка HTST(HTTP Strict Transport Security)

Механизм, принудительно активирующий защищённое соединение через протокол HTTPS. Для его настройки в Apache 2.4 необходимо проверить чтоб был загружен модуль mod_headers.so.

В виртуальный хост необходимо добавить дерективу Header с параметрами Strict-Transport-Security. Параметр max-age рекомендованный ssllabs 180 дней.

4) Добавлены CAA(Certification Authority Authorization) записи для домена

Данная запись собственно абсолютно опциональна, ее суть только в том, что в ней указывается как УЦ может издать для данного домена сертификаты. Собственно если вы укажите в что только Lets`Encrypt, то другие авторизованные УЦ не будут выпускать сертификат под ваш домен.

Собственно можно использоваться два варианта записи с @ для хоста домена, и с * для всех субдоменов домена на этом хосте. Так же в записи есть флаг критичности, 0 — УЦ будут смотреть запись и могут ей не следовать, 128 — будут следовать записи, то есть при ноль другой УЦ может выпустить сертификат при 128 не будет выпускать. Tag — что должно быть в значении, issue — домен центра сертификации, issuewild — домен центра сертификации для wildcard-сертификатов, iodef — email (в формате «mailto:email@example.com») или http/https url куда ЦС будет направлена информация о запросах на выдачу сертификатов, нарушающих правила CAA.

Сама запись:

Важно, чтоб в проверке ssllab — DNS CAA было принято, необходимо использовать флаг 128, при нулевом будет выглядеть так же как и без записи.

Полный листинг виртуального хоста:

Данный виртуальный хост используется в панели VestaCP.

Так же вы можете посмотреть пример настройки конфигурации Nginx для прохождения теста ssllab на A+ в статье Настройка A+ на ssllab (Nginx)

Поделиться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

(Required)