Бесплатный SSL Wildcard Let’s Encrypt

Получаем бесплатный wildcard сертификат от Let’s Encrypt для использования на всех поддоменах.

Для получения wildcard, белый IP не нужен, подойдёт любой Linux сервер за NAT. Можно запустить на локальном ПК VirtualBOX. Я использую контейнер Debian 11 на Proxmox, если такой возможности нет, то можно взять сервер на 1 день в VDSina примерно за 7 рублей.

Ставим пакет letsencrypt

apt update
apt-get install letsencrypt

Запрашиваем сертификат

certbot certonly --manual --preferred-challenges=dns --email Моя@Почта.ru --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d Домен.ru -d *.Домен.ru

Без домена 2 уровня, 3 уровень запросить не получится.

Со всем соглашаемся и видим просьбу прописать DNS TXT запись _acme-challenge с предложенным значением ejE3xRNcwNmlU0CnM8gC8YAHQhqdNUm_b1i_zshKiSs
Жмем Enter и получаем запрос на добавление второй записи
Добавляем в DNS TXT аналогично предыдущей записи

И прерываем процесс получения, иначе DNS запись кэшируется и придется ждать неопределенное количество времени для ее обновления.

Это делается где вы правите DNS записи. В моем случае это Яндекс.Почта для домена:

И ждем пока запись обновится:

dig @8.8.4.4 -t txt _acme-challenge.1side.ru
Ждем появления двух записей
2 DNS записи _acme-challenge.1side.ru видны

И запускаем заново получение сертификата:

certbot certonly --manual --preferred-challenges=dns --email Моя@Почта.ru --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d Домен.ru -d *.Домен.ru

После получения, сертификат будет лежать в директории /etc/letsencrypt/live/

/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/privkey.pem

Проверить сертификат можно командой certbot certificates, которая укажет где он лежит.

Теперь сертификат можно распространять по внутренним системам.

Автоматическое обновление

Входим в crontab -e где указываем команду обновления:

0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log

Конвертация в PFX

openssl pkcs12 -export -out site.pfx -inkey privkey.pem -in cert.pem -certfile fullchain.pem

Для импорта в Windows для использования в IIS, Wi-Fi и RDP