06.06.2023

Как установить SSL-сертификат Let's Encrypt для Ubuntu 20.04

Шифрование SSL / TLS является неотъемлемой частью сетевой инфраструктуры. Все web и почтовые сервера позволяют включить шифрование данных. В этой статье мы расскажем, как получить бесплатный SSL-сертификат Let's Encrypt.

Как получить бесплатный сертификат Let’s Encrypt:

В качестве начальных условий вам потребуется доменное имя. Его A-запись DNS должна содержать публичный адрес вашего сервера. Если брандмауэр включен, откройте доступ для трафика HTTP и HTTPS.

sudo ufw allow 80
sudo ufw allow 443

Шаг 1. Установка пакета «Let's Encrypt»

Процесс установки пакета «Let’s Encrypt» со всеми его зависимостями предельно прост - достаточно ввести команду:

sudo apt install letsencrypt

Вместе с пакетом «Let's Encrypt» эта команда также устанавливает утилиту «certbot.timer» для автоматического продления сертификата. Она проверяет действительность SSL-сертификатов в системе два раза в день и продлевает те, срок действия которых истекает в следующие 30 дней. Для проверки запуска утилиты введите:

sudo systemctl status certbot.timer

Существуют разные конфигурации и условия получения сертификата. Далее рассмотрим некоторые из них.

Step 2 – Автономный сервер для получения SSL-сертификата «Let's Encrypt»

Самый простой способ получить SSL-сертификат - использовать отдельную опцию в Certbot. Замените domain-name.com на свое доменное имя, выполните команду и следуйте инструкциям:

sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d domain-name.com

Параметр certonly означает, что сертификат будет получен только без установки на каком-либо web-сервере, standalone позволяет запускать собственный web-сервер для аутентификации, agree-tos - принятие ACME соглашения о подписке на сервер, являющемся предварительным условием, а preferred-challenges http - выполнение авторизации с использованием HTTP.

Step 3 – Автоматическая установка SSL-сертификата на web-серверах nginx и Apache

Certbot может автоматически устанавливать сертификат на web-серверы nginx и Apache. Для этого вам необходимо установить и выбрать подходящий дополнительный пакет для вашего сервера.

apt install python3-certbot-nginx
apt install python3-certbot-apache

Команда для nginx:

sudo certbot --nginx --agree-tos --preferred-challenges http -d domain-name.com

Для Apache:

sudo certbot --apache --agree-tos --preferred-challenges http -d domain-name.com

Следуйте инструкциям, и Certbot установит SSL-сертификат.

Step 4 – Wildcard-сертификат «Let’s Encrypt»

Единственный возможный метод создания Wildcard-сертификата - это DNS. В параметре d необходимо указать как пустой домен, так и wildcard.

sudo certbot certonly --manual --agree-tos --preferred-challenges dns -d domain-name.com -d *.domain-name.com

После этого поместите указанную запись TXT на свой DNS-сервер и нажмите «continue».

Если все в порядке, вы увидите путь хранения вашего нового Wildcard-сертификата и другую информацию.