Все статьи о SSL SSL и сертификаты

Лучшие практики SSL/TLS на 2026 год

Настройка SSL/TLS значительно изменилась. Вот текущее состояние лучших практик на 2026 год — что включать, что отключать и что готовится на будущее.

Версии протоколов

ПротоколСтатусДействие
SSL 2.0, 3.0СломанОтключить — критические уязвимости (POODLE, DROWN)
TLS 1.0Устарел (2021)Отключить — уязвимость BEAST
TLS 1.1Устарел (2021)Отключить — нет поддержки современных шифров
TLS 1.2БезопасенВключить — только с шифрами AEAD
TLS 1.3Текущий стандартВключить — самый быстрый, самый безопасный

Nginx: ssl_protocols TLSv1.2 TLSv1.3; Apache: SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

Наборы шифров

TLS 1.3 (настройка не требуется)

Все 5 наборов шифров безопасны. Не пытайтесь настраивать — лучше не сделаете.

TLS 1.2 (ограничить до AEAD)

# Nginx
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers off;

Правила:

  • Только наборы ECDHE-* — обеспечивают прямую секретность
  • Только *-GCM-* или *-CHACHA20-* — только шифры AEAD
  • Без шифров CBC — уязвимы к BEAST, Lucky13
  • ssl_prefer_server_ciphers off — пусть клиент выбирает (современные клиенты выберут лучший вариант)

Управление сертификатами

ПрактикаПочему
Используйте ключи ECDSA P-256Меньше и быстрее, чем RSA 2048
Автоматизируйте обновление47-дневный срок действия к 2029 году делает ручное обновление непрактичным
Подавайте fullchain.pemПредотвращает ошибки цепочки доверия
Мониторьте срок действия сертификатаНастройте оповещения на 60-й день из 90
Используйте мониторинг Certificate TransparencyОбнаруживайте несанкционированные сертификаты
Ротируйте ключи при обновленииНе используйте закрытые ключи повторно между сертификатами

Заголовки безопасности

# HSTS — всегда использовать HTTPS (начните с короткого max-age, увеличьте позже)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

# Предотвращение подмены MIME-типов
add_header X-Content-Type-Options "nosniff" always;

# Предотвращение кликджекинга
add_header X-Frame-Options "SAMEORIGIN" always;

# Обновление незащищённых подресурсов
add_header Content-Security-Policy "upgrade-insecure-requests" always;

Подробнее о HSTS →

Оптимизация производительности

НастройкаКонфигурацияПреимущество
HTTP/2listen 443 ssl http2;Мультиплексирование, сжатие заголовков
Кэширование сессийssl_session_cache shared:SSL:10m;Избегает повторного рукопожатия для возвращающихся посетителей
Отключение session ticketsssl_session_tickets off;Лучшая прямая секретность
OCSP staplingssl_stapling on;Быстрая проверка сертификата, лучшая конфиденциальность
Early data (0-RTT)По умолчанию в TLS 1.3Возобновление без задержки (используйте осторожно)

Полная конфигурация Nginx (готовая к продакшену)

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers off;

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;

    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    root /var/www/html;
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Проверка: Введите ваш домен на SSL Labs — эта конфигурация должна получить оценку A+.

Чего НЕ делать

Плохая практикаПочемуЧто делать вместо
ssl_protocols TLSv1 TLSv1.1;Устарели, уязвимыТолько TLS 1.2 + 1.3
ssl_ciphers ALL;Включает слабые шифрыЯвный список ECDHE + AEAD
ssl_prefer_server_ciphers on; (TLS 1.3)Не нужно — все шифры TLS 1.3 безопасныoff
Использование cert.pem вместо fullchain.pemОтсутствующая цепочка → ошибки доверияВсегда fullchain.pem для Nginx
Самоподписанные сертификаты в продакшенеПредупреждения браузера, нет доверияLet’s Encrypt (бесплатно)
Один закрытый ключ годамиОграничивает локализацию ущербаРотировать при каждом обновлении
Без HSTSУязвимость к атакам пониженияВключить после тестирования
max-age=0 для HSTSФактически отключает HSTSНачать с 300, увеличить до 63072000

Часто задаваемые вопросы

Как проверить мою конфигурацию SSL?

SSL Labs Server Test — введите ваш домен, получите детальный отчёт с буквенной оценкой (A-F). Проверьте поддержку протоколов, стойкость шифров, валидность цепочки и известные уязвимости.

Какую оценку нужно получить?

A+ для продакшен-сайтов. Для этого требуется: только TLS 1.2+, шифры AEAD, валидная цепочка, HSTS с длинным max-age. Конфигурация выше обеспечивает A+.

Как часто пересматривать конфигурацию SSL?

Ежегодно или при объявлении новой уязвимости. Подпишитесь на страницу статуса Let’s Encrypt и следите за Mozilla SSL Configuration Generator для актуальных рекомендаций.

Есть ли инструмент, который генерирует правильную конфигурацию?

Да — Mozilla SSL Configuration Generator. Выберите ваш сервер (Nginx, Apache и т.д.), версию сервера, и он сгенерирует рекомендуемую конфигурацию. Профиль «Modern» соответствует практикам из этой статьи.

Похожие статьи

SSL и сертификаты 2026-05-08
Что такое TLS 1.3? Все, что изменилось
TLS 1.3 — текущий стандарт шифрования: более быстрое рукопожатие, обязательная прямая секретность, отсутствие устаревших алгоритмов. Узнайте, что изменилось по сравнению с TLS 1.2, как его включить и стоит ли использовать только его.
SSL и сертификаты 2026-05-08
Что такое прямая секретность (Perfect Forward Secrecy)?
Прямая секретность означает, что каждое TLS-соединение использует уникальный ключ. Даже при компрометации закрытого ключа сервера прошлые сеансы связи не могут быть расшифрованы. Узнайте, как это работает и как убедиться, что функция включена.
SSL и сертификаты 2026-05-08
HSTS: HTTP Strict Transport Security -- подробное объяснение
HSTS указывает браузерам всегда использовать HTTPS. Узнайте, как настроить HSTS, какое значение max-age задать, когда добавлять preload и какие риски связаны с неправильной настройкой.
Развёртывание 2026-05-08
Как установить SSL-сертификат на Nginx
Пошаговое руководство по установке SSL-сертификата на Nginx. Охватывает загрузку файлов, полную конфигурацию серверного блока, лучшие практики TLS, HTTP/2, HSTS, настройку редиректов, тестирование и устранение 6 распространённых ошибок.
Получите бесплатный SSL-сертификат в браузере
Без установки, без аккаунта. Ваш приватный ключ никогда не покидает устройство.
Получить сертификат