Опубликовано в
Как отключить TLS 1.3 в Nginx
Как отключить TLS 1.3 в Nginx

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

Чтобы отключить TLS 1.3 в Nginx, нужно явно указать разрешённые версии протоколов в директиве ssl_protocols, не включая TLSv1.3. Nginx поддерживает только те версии, которые перечислены в этой директиве.

server {
    listen 443 ssl;
    server_name example.com;

    # Разрешаем только TLS 1.2 (TLS 1.3 автоматически отключится)
    ssl_protocols TLSv1.2;

    ssl_certificate     /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/key.pem;
    # ... остальные директивы
}

🛠 Пошагово

  • Откройте конфиг (путь зависит от вашей ОС и структуры):
sudo nano /etc/nginx/nginx.conf
# или
sudo nano /etc/nginx/conf.d/ваш_сайт.conf
# или
sudo nano /etc/nginx/sites-enabled/ваш_сайт
  • Найдите или добавьте строку ssl_protocols. Убедитесь, что в ней нет TLSv1.3.
  • Проверьте синтаксис:
sudo nginx -t
  • Примените изменения:
sudo systemctl reload nginx   # systemd
# или
sudo service nginx reload     # sysvinit

🔍 Как проверить, что TLS 1.3 отключился

openssl s_client -connect example.com:443 -tls1_3
# Должно завершиться ошибкой handshake failure или отказом соединения

Или проверьте поддержку TLS 1.2 (должно работать):

openssl s_client -connect example.com:443 -tls1_2

⚠️ Важные замечания

  • TLSv1 и TLSv1.1 считаются уязвимыми. Не добавляйте их без крайней необходимости.
  • TLS 1.3 быстрее и безопаснее TLS 1.2. Отключайте его только если этого требуют специфичные клиенты, legacy-оборудование или внутренние политики безопасности.
  • Если директива ssl_protocols уже указана в блоке http глобально, она переопределит настройки в server. Либо уберите её из http, либо явно пропишите нужную версию в каждом server.

Share this content: