Гид по технологиям

Как включить TLS 1.3 в Nginx

• 4 min read • Безопасность • Обновлено 26 Nov 2025
Включение TLS 1.3 в Nginx — руководство
Включение TLS 1.3 в Nginx — руководство

Кратко

TLS 1.3 улучшает приватность и скорость соединений по сравнению с TLS 1.2. Чтобы включить его в Nginx, достаточно собрать Nginx против OpenSSL 1.1.1+ и добавить TLSv1.3 в директиву ssl_protocols — но есть нюансы с версиями пакетов и совместимостью клиентов. В статье — минимальная конфигурация, проверка, чеклисты и советы по отладке.

Схема работы TLS 1.3

Введение

Transport Layer Security (TLS) 1.3 — актуальная версия протокола TLS, стандартизированная в IETF (RFC 8446, август 2018 г.). TLS 1.3 сокращает количество раундов рукопожатия, удаляет уязвимые алгоритмы и улучшает конфиденциальность соединения.

Коротко о терминах:

  • TLS 1.3 — современный протокол защищённого канала.
  • OpenSSL 1.1.1+ — библиотека, которая реализует TLS 1.3 на множестве ОС.
  • Nginx 1.13.0+ — версия Nginx с добавленной поддержкой TLS 1.3 при сборке против OpenSSL 1.1.1+.

Важно: многие дистрибутивы поставляют старые пакеты; чаще всего требуется сборка Nginx вручную против OpenSSL 1.1.1 или выше.

Требования

  • Nginx версии 1.13.0 или выше, собранный против OpenSSL 1.1.1 или выше.
  • Действующий TLS-сертификат (в том числе самоподписанный) — можно получить бесплатно через Let’s Encrypt.

Примечание: нативная поддержка TLS 1.3 присутствовала в некоторых дистрибутивах (например, Ubuntu 18.10, Fedora 29 и Debian 10 в момент ранних релизов), но реальная доступность зависит от репозиториев и сборки пакетов.

Быстрая настройка

Чтобы включить TLS 1.3 в конфигурации Nginx, добавьте параметр TLSv1.3 в директиве ssl_protocols и перезагрузите сервис:

ssl_protocols TLSv1.2 TLSv1.3;

Перезагрузка Nginx:

sudo systemctl reload nginx.service

Это минимальное изменение; если Nginx собран правильно и OpenSSL поддерживает TLS 1.3, протокол начнёт использоваться.

Минимальная виртуальная конфигурация

Ниже — пример минимального server-блока для HTTPS с поддержкой TLS 1.3:

server {  
  listen 443 ssl http2;  
  listen [::]:443 ssl http2;  
  server_name example.com;  
  root /var/www/example.com/public;  
  ssl_certificate /path/to/your/certificate.crt;  
  ssl_certificate_key /path/to/your/private.key;  
  ssl_protocols TLSv1.2 TLSv1.3;  
}

Совет: оставляйте TLSv1.2 в списке для обратной совместимости, если у вас ещё есть старые клиенты.

Проверка работоспособности

Проверить поддержку TLS 1.3 можно несколькими способами:

  • Инструменты разработчика браузера (раздел Security/Connection).
  • Онлайн-сервис SSLLabs Server Test.
  • Командная строка: openssl s_client с подходящими опциями (если ваша OpenSSL поддерживает TLS 1.3).

Проверка версии TLS в браузере (инструменты разработчика)

TLS 1.3 успешно включён в Nginx — сведения о соединении

Отладка и частые проблемы

  • Nginx сообщает, что TLSv1.3 неизвестен: скорее всего, Nginx был собран против старой версии OpenSSL. Проверьте сборку и переменные конфигурации сборки (./configure –with-openssl=…).
  • Клиент не использует TLS 1.3: убедитесь, что сам клиент (браузер, библиотека) поддерживает TLS 1.3 и что между ними не вмешиваются прокси/веб-ускорители.
  • Устаревшие шифры: TLS 1.3 использует собственный набор шифров — не указывайте старые TLS1.2-only наборы при конфигурации ssl_ciphers.

Важно: не отключайте HTTP/2 без необходимости — он совместим с TLS 1.3 и даёт преимущество по производительности.

Когда включение TLS 1.3 не сработает (контрпримеры)

  • Nginx собран против OpenSSL < 1.1.1.
  • На пути до клиента стоит SSL-терминирующий балансировщик без поддержки TLS 1.3.
  • Клиенты устаревшие и не поддерживают TLS 1.3.

Альтернативные подходы

  • Использовать поставляемые системой пакеты (если они обновлены) вместо ручной сборки.
  • Заменить OpenSSL на BoringSSL или LibreSSL при необходимости (учтите совместимость и поддержку дистрибутива).
  • Делегировать TLS-терминацию облачному провайдеру/балансировщику, который поддерживает TLS 1.3.

Матрица совместимости (ориентир)

КомпонентТребование для TLS 1.3
OpenSSL1.1.1 или выше
Nginx1.13.0 или выше (при сборке против OpenSSL 1.1.1+)
ДистрибутивыЧасто требуется сборка вручную; некоторые ранние релизы имели нативную поддержку
КлиентыСовременные браузеры и актуальные TLS-библиотеки

Чеклист для ролей

Администратор/DevOps:

  • Проверить версию OpenSSL на сервере (openssl version).
  • Проверить, с какой OpenSSL собран Nginx (nginx -V).
  • При необходимости пересобрать Nginx против OpenSSL 1.1.1+.
  • Добавить TLSv1.3 в ssl_protocols и перезагрузить Nginx.
  • Проверить доступность через браузер и SSLLabs.

Разработчик приложения:

  • Убедиться, что клиентские библиотеки и зависимости поддерживают TLS 1.3.
  • Тестировать соединения в окружении QA.

Критерии приёмки

  • Nginx отвечает с использованием TLS 1.3 для современных клиентов.
  • SSLLabs показывает поддержку TLS 1.3 и корректный набор шифров.
  • Нету регрессий в производительности и совместимости для ключевых клиентов.

Тест-кейсы

  • Подключение с современным браузером — ожидается TLS 1.3.
  • Подключение с устаревшей библиотекой — ожидается TLS 1.2 (при сохранённой совместимости).
  • Проверка через SSLLabs — пройти хотя бы на уровень A (рекомендуется).

Небольшая методология внедрения

  1. Подготовка тестовой среды и проверка версии OpenSSL.
  2. Сборка/обновление Nginx в тестовом окружении.
  3. Включение TLSv1.3 и тестирование с ключевыми клиентами.
  4. Постепенный релиз в прод, мониторинг ошибок и метрик.
flowchart TD
  A[Проверить OpenSSL] --> B{OpenSSL >= 1.1.1?}
  B -- Да --> C[Включить TLSv1.3 в Nginx]
  B -- Нет --> D[Обновить или пересобрать OpenSSL]
  D --> C
  C --> E[Тестирование и мониторинг]

Фактбокс

  • RFC: RFC 8446 (август 2018).
  • Основное требование для сервера: OpenSSL 1.1.1+ и Nginx 1.13.0+ при соответствующей сборке.

Итог

Включение TLS 1.3 в Nginx обычно сводится к сборке Nginx против OpenSSL 1.1.1+ и добавлению TLSv1.3 в ssl_protocols. Проверьте совместимость клиентов и балансировщиков, выполните тесты и используйте чеклисты из этой статьи для безопасного и предсказуемого релиза.

Важно: всегда проверяйте конфигурацию и влияние на клиентов в тестовой среде перед включением в продакшен.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро