Pull to refresh
0
1cloud.ru
IaaS, VPS, VDS, Частное и публичное облако, SSL

Как настроить HTTPS — поможет SSL Configuration Generator

Reading time4 min
Views9.2K
Рассказываем об инструменте для конфигурации SSL, который разработали в Mozilla.

Под катом — о его возможностях и других утилитах для настройки сайтов.


Фото — Lai Man Nung — Unsplash

Зачем нужен генератор


Прежде чем перейти к рассказу о возможностях инструмента, поговорим о его назначении. При работе с HTTPS шифрование применяется в четырех случаях: во время обмена ключами, в SSL-сертификатах, при пересылке сообщений и составлении хеш-суммы (дайджеста).

В каждом из них используются различные наборы алгоритмов, о которых договариваются клиент и сервер. Они выбирают ассиметричный шифр для «рукопожатия», симметричный шифр для кодирования сообщений и алгоритм хеширования для дайджеста.

Например, шифронабор ECDHE-ECDSA-CHACHA20-POLY1305 означает, что обмен ключами происходит по протоколу Диффи — Хеллмана на эллиптических кривых (ECDHE). При этом используются эфемерные ключи (одноразовые) для установки только одного соединения. Центр сертификации подписал сертификат при помощи алгоритма ECDSA (Elliptic Curve Digital Signature Algorithm), а для шифрования сообщений применяется поточный алгоритм ChaCha20. За их целостность отвечает POLY1305, вычисляющий 16-байтный аутентификатор.

Полный список всех доступных комбинаций алгоритмов можно найти на wiki-страничке Mozilla.

Для настройки криптографических методов, используемых сервером, в сети есть специальные инструменты. Такую функциональность имеет SSL Configuration Generator, разработанный в Mozilla.

Что он собой представляет


В Mozilla предлагают три рекомендуемые конфигурации для серверов, использующих TLS:

  • Современная — для работы с клиентами, использующими TLS 1.3 без обратной совместимости.
  • Промежуточная — рекомендуемая конфигурация для большинства серверов.
  • Устаревшая — доступ к сервису осуществляется с помощью старых клиентов или библиотек, таких как IE8, Java 6 или OpenSSL 0.9.8.

Например, в первом случае генератор использует алгоритм шифрования AES128/256, алгоритм хеширования SHA256/384 и режим работы симметричных блочных шифров GCM. Вот пример шифронабора: TLS_AES_256_GCM_SHA384.

Во втором случае число используемых шифров гораздо больше, поскольку многие из них исключили из TLS 1.3 для повышения безопасности. Плюс в шифронаборе TLS 1.3 не описывается тип сертификата и механизм обмена ключами. Поэтому в промежуточной конфигурации имеются протокол Диффи — Хеллмана с эфемерными ключами и RSA.

С учетом этих требований SSL Configuration Generator строит конфигурационный файл (OpenSSL). При построении можно выбрать необходимое серверное программное обеспечение: Apache, HAProxy, MySQL, nginx, PostgreSQL и еще пять других. Вот пример современной конфигурации для Apache:

# generated 2019-07-04, https://ssl-config.mozilla.org/#server=apache&server-version=2.4.39&config=modern
# requires mod_ssl, mod_socache_shmcb, mod_rewrite, and mod_headers
<VirtualHost *:80>
    RewriteEngine On
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile      /path/to/signed_cert_and_intermediate_certs
    SSLCertificateKeyFile   /path/to/private_key

    # enable HTTP/2, if available
    Protocols h2 http/1.1

    # HTTP Strict Transport Security (mod_headers is required) (63072000 seconds)
    Header always set Strict-Transport-Security "max-age=63072000"
</VirtualHost>

# modern configuration, tweak to your needs
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

Генерируемые конфигурации можно использовать в своем проекте, нужно лишь отредактировать пути сертификата и секретного ключа и загрузить настройки. Однако, как говорит один из резидентов Hacker News, важно обратить внимание на версию сервера, чтобы получить правильные результаты. В частности, вывод для nginx 1.0 и nginx 1.4 значительно отличается. Также есть мнение, что в некоторых случаях придется вручную подправить часть сгенерированных шифронаборов, чтобы сохранить обратную совместимость и получить высокую оценку в бенчмарках для сканирования сайтов.

Какие еще утилиты помогут с защитой сайтов


В портфолио Mozilla есть несколько утилит, которые помогут проверить надежность ресурса после конфигурирования SSL.

Первая — это Mozilla Observatory. Изначально компания разрабатывала инструмент для проверки защищенности своих собственных доменов. Теперь он доступен всем вместе с исходным кодом. Observatory сканирует сайты на самые популярные уязвимости, среди них: потенциально опасные cookies, XSS-уязвимости и редиректы. После сканирования системы выдает набор рекомендаций для повышения безопасности интернет-ресурса.


Фото — sebastiaan stam — Unsplash

Еще одна полезный инструмент — Firefox Monitor. Она отслеживает последние утечки данных и посылает уведомления, если информация с какого-либо сайта попала в руки хакеров. Таким образом, администраторы получают возможность оперативно принять меры, минимизировать ущерб и сделать так, чтобы история не повторилась в будущем.

Наши публикации из блогов и социальных сетей:

Как защитить виртуальный сервер в интернете
Зачем нужен мониторинг?
Получение OV и EV сертификата — что нужно знать?

Mobile-first индексация с первого июля — как проверить свой сайт?
F.A.Q. по частному облаку от 1cloud

Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов
Есть мнение: технология DANE для браузеров провалилась
Tags:
Hubs:
+20
Comments1

Articles

Change theme settings

Information

Website
1cloud.ru
Registered
Founded
Employees
31–50 employees
Location
Россия