Как установить SSL-сертификат на Ubuntu для конкретного домена с помощью Certbot

В этой статье я покажу, как быстро и бесплатно подключить SSL-сертификат для конкретного домена на сервере под управлением Ubuntu, используя Certbot и Let’s Encrypt.
Инструкция подойдёт как для Apache, так и для Nginx.


Зачем нужен SSL-сертификат

SSL (HTTPS) необходим для:

  • защиты передаваемых данных,
  • доверия со стороны браузеров,
  • корректной работы SEO,
  • избавления от предупреждений «Небезопасный сайт».

Бесплатные сертификаты от Let’s Encrypt полностью подходят для большинства сайтов и автоматически продлеваются.


Что понадобится перед началом

Перед установкой убедитесь, что:

  1. Домен уже указывает на IP вашего сервера (DNS-записи настроены).
  2. Открыты порты 80 и 443:
   sudo ufw allow 80
   sudo ufw allow 443
  1. На сервере установлен и запущен веб-сервер (Apache или Nginx).
  2. Сервер работает под управлением Ubuntu.

Что такое Certbot

Certbot — это официальная утилита от Let’s Encrypt, которая:

  • автоматически выпускает SSL-сертификаты,
  • настраивает веб-сервер,
  • включает HTTPS и редиректы,
  • следит за продлением сертификатов.

Установка SSL для Apache

Установка Certbot

Для Apache нужно установить Certbot с соответствующим плагином:

sudo apt update
sudo apt install certbot python3-certbot-apache

Получение сертификата для одного домена

Если нужно добавить SSL только для одного домена, выполните:

sudo certbot --apache -d example.com

Если требуется сертификат и для версии с www:

sudo certbot --apache -d example.com -d www.example.com

В процессе Certbot:

  • попросит указать email,
  • предложит принять условия использования,
  • спросит, включать ли редирект с HTTP на HTTPS.

Рекомендуется выбрать редирект, чтобы весь трафик автоматически переходил на HTTPS.


Проверка работы

После завершения Certbot автоматически перезагрузит Apache.
Проверьте сайт в браузере:

https://example.com

Установка SSL для Nginx

Установка Certbot

sudo apt update
sudo apt install certbot python3-certbot-nginx

Получение сертификата

Для одного домена:

sudo certbot --nginx -d example.com

Для домена с www:

sudo certbot --nginx -d example.com -d www.example.com

Certbot сам добавит SSL-блок в конфигурацию Nginx и предложит включить HTTPS-редирект.


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

sudo systemctl reload nginx

Где хранятся сертификаты

Все сертификаты Let’s Encrypt хранятся в каталоге:

/etc/letsencrypt/live/example.com/

Основные файлы:

  • fullchain.pem — сертификат,
  • privkey.pem — приватный ключ.

Проверка сертификата

Посмотреть список активных сертификатов можно командой:

certbot certificates

Также можно проверить соединение вручную:

openssl s_client -connect example.com:443

Автоматическое продление сертификата

Certbot автоматически добавляет systemd-таймер для продления сертификатов.
Проверить его наличие можно так:

systemctl list-timers | grep certbot

Тест продления (без реального обновления):

sudo certbot renew --dry-run

Если тест прошёл успешно — сертификат будет продлеваться автоматически.


Частые ошибки

Ошибка проверки домена
Обычно возникает, если домен не открывается по HTTP или порт 80 закрыт.

Сайт не открывается после установки
Проверьте ServerName (Apache) или server_name (Nginx) в конфигурации виртуального хоста.