SSL на Nginx: настройка сертификата и HTTPS, коротко и с данными
Конспект страницы: 5 разделов коротко, данные на 19 октября 2026 и ответы на 4 вопроса. Полный разбор с примерами: SSL на Nginx: настройка сертификата и HTTPS.
Коротко
Главная / Установка / SSL на Nginx SSL на Nginx включают в блоке server: порт 443 с параметром ssl, директива ssl_certificate с путём к сертификату и ssl_certificate_key с путём к приватному ключу. Остальное доделывается за несколько минут: цепочка в одном файле, отдельный блок для порта 80 и проверка конфига перед перезагрузкой. Вам нужны два файла и два пути в конфиге: сертификат вместе с промежуточными и приватный ключ.
Конспект по разделам
Какие файлы Nginx нужны для SSL-сертификата
Nginx читает сертификат и ключ с диска, поэтому сначала нужно собрать два файла. Первый содержит ваш сертификат и следом за ним промежуточные сертификаты центра сертификации. Второй хранит приватный ключ, который создавался вместе с запросом CSR.
Как выглядит блок server с SSL в Nginx
Откройте конфигурацию сайта, обычно это файл в /etc/nginx/conf.d/ или /etc/nginx/sites-available/, и добавьте блок для порта 443. Параметр ssl после номера порта говорит Nginx принимать на нём зашифрованные соединения. Протоколы TLS 1.2 и 1.3 в документации Nginx указаны значением по умолчанию, строку можно оставить для наглядности.
Как отправить посетителей с порта 80 на HTTPS в Nginx
Адреса со старым http:// уже стоят в закладках и ссылках, поэтому порт 80 оставляют и заставляют его отвечать переадресацией. Сделайте для него отдельный короткий блок. Код 301 сообщает поисковикам, что адрес переехал насовсем, а $request_uri сохраняет путь и параметры: страница /catalog/?id=5 откроется по https на том же месте.
Как проверить и применить конфиг Nginx с SSL
Если в выводе виден только ваш сертификат без промежуточных, браузеры на телефонах могут ругаться, а настольные нет. Разбор приёмов проверки: как проверить SSL-сертификат.
- Проверьте синтаксис.
- Перечитайте конфиг. sudo systemctl reload nginx применит изменения без разрыва текущих соединений.
- Откройте сайт по https.
- Проверьте цепочку из консоли.
Почему Nginx не запускается после подключения SSL
Чтобы убедиться, что сертификат и ключ составляют пару, сравните отпечатки их модулей. Способ работает для ключей RSA, и значения должны совпасть.
Данные
| Источник | Файл для ssl_certificate | Файл для ssl_certificate_key |
|---|---|---|
| Certbot (Let's Encrypt) | /etc/letsencrypt/live/example.com/fullchain.pem | /etc/letsencrypt/live/example.com/privkey.pem |
| Платный сертификат | Собранный вручную файл: сертификат + промежуточные | Ваш.key, созданный до заявки |
| Что пишет Nginx или браузер | Причина | Что делать |
|---|---|---|
| key values mismatch | Ключ не от этого сертификата или файл склеен в обратном порядке | Сверьте пару командами ниже, пересоберите файл: сначала ваш сертификат |
| No such file or directory | Неверный путь в ssl_certificate или ssl_certificate_key | Укажите полный путь и проверьте права на каталог |
| Сайт не открывается по https, по http работает | Порт 443 закрыт или нет listen 443 ssl | Откройте порт в файрволе, см. проверку порта 443 |
| «Имя не совпадает» | В server_name или в сертификате нет нужного домена, например www | Разбор ошибки имени |
Данные на 19 октября 2026.
Вопросы и ответы
Какие директивы нужны для SSL на Nginx?
Минимум три: listen 443 ssl в блоке server, ssl_certificate с путём к сертификату и ssl_certificate_key с путём к приватному ключу.
Можно ли подключить бесплатный сертификат к Nginx без ручной склейки файлов?
Да. Certbot кладёт в каталог /etc/letsencrypt/live/ваш-домен/ готовый fullchain.pem и privkey.pem, достаточно указать эти пути. Порядок команд описан на странице про Certbot.
Нужно ли перезапускать Nginx после замены сертификата в конфиге?
Хватит reload: он перечитывает файлы без остановки сайта. Перед ним запустите nginx -t.
Где в конфиге Nginx указывают промежуточный сертификат?
Отдельной директивы нет: промежуточные сертификаты идут в том же файле, что и ваш, сразу после него. Его путь пишут в ssl_certificate.