Как установить SSL-сертификат на nginx?
Константин, Рязань 0
У меня VPS с nginx без панели вроде ISPmanager, сайт пока крутится по http. Через хостинг-панель сертификат не поставить, руками ещё не пробовал. Как установить SSL самостоятельно и что потом делать с конфигом сервера?
Дмитрий Акиндинов технический администратор сайтов
ответил
На VPS с nginx SSL-сертификат ставится утилитой certbot: она выпускает бесплатный сертификат Let’s Encrypt, кладёт файлы в /etc/letsencrypt/ и сама дописывает нужные строки в конфиг nginx для домена. После установки конфиг проверяют командой nginx -t на ошибки синтаксиса, а затем перезагружают через systemctl reload nginx — без этого шага сайт продолжит работать по старому конфигу.
Порядок действий такой: ставите certbot и плагин python3-certbot-nginx через пакетный менеджер сервера (apt для Ubuntu и Debian), затем запускаете certbot —nginx -d ваш-домен.ru -d www.ваш-домен.ru. Утилита сама найдёт нужный server-блок в конфиге, спросит про домен и предложит включить редирект с http на https — соглашаться стоит, иначе часть посетителей и поисковых роботов останется на незащищённой версии.
Сертификат Let’s Encrypt живёт 90 дней, поэтому сразу после установки стоит проверить, что certbot добавил задачу автопродления в cron или systemd timer. Обычно это происходит автоматически при установке через пакетный менеджер, но лучше свериться командой certbot renew —dry-run.
Если после установки браузер всё равно показывает предупреждение о незащищённом соединении, чаще всего дело в закрытом порте 443 в файрволе сервера или в том, что редирект настроен только для одного варианта домена — с www или без. Ошибку синтаксиса конфига nginx покажет команда nginx -t ещё до перезапуска, это стоит проверять при каждой ручной правке файла.
Задать свой вопрос
Вопросы проходят модерацию. Ответ появляется на сайте в течение пары дней.
Вопрос отправлен. После проверки он появится на сайте вместе с ответом.
Вопрос не отправлен: нужно подтвердить согласие на обработку персональных данных.