В этой статье я покажу, как быстро и бесплатно подключить SSL-сертификат для конкретного домена на сервере под управлением Ubuntu, используя Certbot и Let’s Encrypt.
Инструкция подойдёт как для Apache, так и для Nginx.
Зачем нужен SSL-сертификат
SSL (HTTPS) необходим для:
- защиты передаваемых данных,
- доверия со стороны браузеров,
- корректной работы SEO,
- избавления от предупреждений «Небезопасный сайт».
Бесплатные сертификаты от Let’s Encrypt полностью подходят для большинства сайтов и автоматически продлеваются.
Что понадобится перед началом
Перед установкой убедитесь, что:
- Домен уже указывает на IP вашего сервера (DNS-записи настроены).
- Открыты порты 80 и 443:
sudo ufw allow 80
sudo ufw allow 443
- На сервере установлен и запущен веб-сервер (Apache или Nginx).
- Сервер работает под управлением 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) в конфигурации виртуального хоста.