ssl_certificate

Тема дорожной карты · Nginx

Директива ssl_certificate задаёт путь к PEM-кодированному сертификату (или цепочке сертификатов), который Nginx предъявляет клиентам во время TLS-рукопожатия; она обязательна вместе с ssl_certificate_key для включения HTTPS в любом блоке server Nginx. Типичная SSL/TLS-конфигурация задаёт ssl_certificate /etc/nginx/ssl/example.com.crt, указывающий на файл полной цепочки (сертификат сервера вместе с промежуточными сертификатами CA), и ssl_certificate_key /etc/nginx/ssl/example.com.key, указывающий на соответствующий закрытый ключ, который должен храниться в тайне и быть защищён правами доступа файловой системы. При использовании сертификатов, выпущенных Let's Encrypt через Certbot, путь ssl_certificate обычно /etc/letsencrypt/live/example.com/fullchain.pem, а ключ находится в /etc/letsencrypt/live/example.com/privkey.pem. Nginx поддерживает несколько пар ssl_certificate и ssl_certificate_key в одном блоке server для одновременного предоставления сертификатов RSA и ECDSA, позволяя клиентам с поддержкой современных наборов шифров использовать преимущества меньших и более быстрых ключей ECDSA при сохранении совместимости со старыми клиентами. После обновления файла ssl_certificate выполните nginx -t для проверки соответствия сертификата и ключа, затем примените изменения через nginx -s reload для применения нового сертификата без разрыва соединений.

Как это работает

ssl_certificate обязателен в 2026. Конфигурация: listen 443 ssl http2;, ssl_certificate /path/fullchain.pem;, ssl_certificate_key /path/privkey.pem;. Современный протокол + cipher: ssl_protocols TLSv1.2 TLSv1.3;, ssl_ciphers ECDHE-... (Mozilla "intermediate" profile — разумный дефолт: https://ssl-config.mozilla.org/). Включайте OCSP stapling, session caching (ssl_session_cache shared:SSL:10m), session tickets осторожно. Авто-renew сертов через certbot (Let's Encrypt) или step-ca.

Когда применять

Let's Encrypt + certbot — для бесплатных авто-ренью сертов в большинстве случаев. Mozilla SSL Configuration Generator — для списка cipher. Тест на SSL Labs (ssllabs.com/ssltest) — цель A+. HTTP → HTTPS редирект на server-уровне. HSTS — только после уверенности, что HTTPS работает везде (неверный HSTS-preload навсегда). TLS 1.3 — самый современный.

Типичные ошибки

Ловушки ssl_certificate: включён SSLv3 / TLS 1.0/1.1 (уязвимы — отключите); слабые cipher (DES, RC4); HSTS слишком рано (запирает HTTPS-only до получения сертов всеми поддоменами); серты истекают, потому что ручное renew забыли (всегда автоматизируйте); session tickets с дефолтным ephemeral-ключом, меняющимся на каждый reload (слишком агрессивно для больших сайтов).

Связанные понятия

Полезные ресурсы