Let’s Encrypt это центр сертификации (ЦС), предоставляющий бесплатные SSL / TLS сертификаты, которые можно использовать и в производственных целях. Получить действующий SSL-сертификат для вашего домена можно бесплатно. Запросить его можно только на сервере, на который указывает домен. Let’s Encrypt выполняет проверку DNS для домена, на который указывает текущий сервер. После этого он выпустит сертификат для вас. В этом руководстве вы узнаете, как установить клиент Let’s Encrypt на систему Ubuntu и выпустить SSL-сертификат для домена.
Предварительные условия
Прежде чем мы продолжим, мы предположим, что у вас уже есть:
- Работающая система Ubuntu и доступ к оболочке с привилегиями sudo.
- Установлен Snapd и включена поддержка классических привязок.
- Доменное имя, которое зарегистрировано и указывает на публичный IP-адрес вашего сервера. В этом руководстве мы будем использовать example.com и www.example.com, которые указывают на наш сервер.
- Работающий веб-сервер с виртуальным хостом, настроенным для example.com, а также www.example.com на порту 80.
Шаг 1 — установка Snapd
Snaps можно использовать во всех основных дистрибутивах Linux, включая Ubuntu, Linux Mint, Debian и Fedora.
Snap поставляется предустановленным на Ubuntu 16 и более поздних версиях. Чтобы убедиться, что у вас самая последняя версия snapd, выполните следующие команды из командной строки системы.
$ sudo snap install core; sudo snap refresh core
Если у вас есть пакеты Certbot, установленные через apt, удалите их перед установкой привязки Certbot, чтобы при выполнении команды certbot использовалась версия привязки, а не версия менеджера пакетов.
$ sudo apt-get remove certbot
Если вы ранее установили Certbot с помощью скрипта certbot-auto, вам следует удалить его.
Шаг 2 — Установка клиента Let’s Encrypt
Чтобы установить Certbot, используйте эту команду в командной строке машины.
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Шаг 3 — Получение SSL-сертификата
Let’s Encrypt автоматически проводит строгую проверку домена с помощью множества вызовов для подтверждения права собственности на домен. SSL-сертификат будет выпущен после того, как центр сертификации (ЦС) проверит подлинность вашего домена.
$ sudo certbot certonly --standalone -d example.com -d www.example.com
Последняя команда запрашивает адрес электронной почты, который используется для отправки уведомлений по электронной почте, связанных с продлением и истечением срока действия SSL. Она также задаст несколько дополнительных вопросов. По завершении она выпустит SSL-сертификат и создаст новый VirtualHost файл конфигурации в вашей системе.
Шаг 4 — Проверка SSL-сертификата
Если все прошло успешно, будет выдан новый SSL-сертификат, как показано ниже. Перейдите в следующую директорию для просмотра файлов.
$ cd /etc/letsencrypt/live/example.com
$ ls
Выходные данные:
cert.pem chain.pem fullchain.pem privkey.pem
Шаг 5 — Настройка SSL VirtualHost
Используйте эти конфигурации веб-серверов Apache и Nginx. Отредактируйте файл виртуальной конфигурации хоста и добавьте записи для сертификата, приведенные ниже.
Nginx:
ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Apache:
SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
Шаг 6 — Автоматическое обновление SSL
Пакет Certbot в вашей системе включает задание cron или таймер systemd, который будет автоматически обновлять ваши сертификаты до истечения срока их действия. Если ваша настройка не изменится, вам не нужно будет запускать Certbot снова. Вы можете проверить автоматическое обновление сертификатов, выполнив следующую команду:
$ sudo certbot renew --dry-run
Команда certbot renew устанавливается в одном из следующих мест:
/etc/crontab/
/etc/cron.*/*
systemctl list-timers