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

    Рассказываем об инструменте для конфигурации 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 для браузеров провалилась
    • +20
    • 6,7k
    • 1
    1cloud.ru
    176,99
    IaaS, VPS, VDS, Частное и публичное облако, SSL
    Поделиться публикацией

    Комментарии 1

      0
      Допустим я поставил для теста:
      ssl_protocols TLSv1.3;

      А Firefox всё равно кажет что там TLS 1.2 Так-то конфигуратор годный, можно использовать.

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

      Самое читаемое