Как получить lets’encrypt wildcard сертификат?

Некоторое время назад стало возможно получать wilсard cert от Let’s Encrypt бесплатно.
Наконец-то сегодня можно получиться wildcard cert. И так, расскажем как это можно сделать.

cd /etc/nginx ;
mkdir ACME2 ;
cd ACME2 ;
git clone https://github.com/certbot/certbot.git ;
cd /etc/nginx/ACME2/certbot

Для начала используем stage server https://acme-staging-v02.api.letsencrypt.org/directory – для тестирования.
Следует знать что обычный wildcard не захватывает корневой домен.

cd /var/www/letsencrypt && ./letsencrypt-auto certonly --agree-tos --manual --preferred-challenges dns --server https://acme-staging-v02.api.letsencrypt.org/directory  -d "*.skeeks-market.ru" -d "skeeks-market.ru"

В интерактивном меню отвечаем на вопросы:

  1. Вводим свой email
  2. Подтверждаем право – создаем тxt записи в поддомене “_acme-challenge”. Их будет 2 так как мы выпускаем для корненово домена skeeks-market.ru и для wildcard *.skeeks-market.ru.
    2.1 Создаем поддомен.
_acme-challenge.skeeks-market.ru

2.2 Добавляем txt запись №1 для созданного поддомена

Znib1EqvV1UCsqY35oOW-mFGqJwqeqeq9FH_вn1kTT_-U8

2.3 Добавляем txt запись №2 для созданного поддомена

Znib1EqvV1UCsqY35oOWsdsdsdsdsdsdT_-U8

2.4 Проверяем приминилась ли она – на всякий случай подождем 1 минуту – этого будет достаточно.

dig -t txt _acme-challenge.skeeks-market.ru

Видим

; <<>> DiG 9.9.5-4~bpo70+1-Debian <<>> -t txt _acme-challenge.skeeks-market.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6433
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_acme-challenge.skeeks-market.ru. IN   TXT

;; ANSWER SECTION:
_acme-challenge.skeeks-market.ru. 299 IN TXT    "NMXl_7DyVXPscrK5X2dUEkBqZ0QRrJO48p1pJp6St5g"
_acme-challenge.skeeks-market.ru. 299 IN TXT    "xpfrnlEMtHml-eeZaxCaflzPzM_NCb2vZYTOcUEUIgM"

;; Query time: 53 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Oct 25 22:37:16 MSK 2020
;; MSG SIZE  rcvd: 173

Всё прошло успешно, но это фейковый сертификат, так что пока его не добавляем.
Теперь выпустим доверенный сертификат с продакшен сервера lets’encrypt https://acme-v02.api.letsencrypt.org/directory.

cd /var/www/letsencrypt && ./letsencrypt-auto certonly --agree-tos --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory  -d "*.skeeks-market.ru" -d "skeeks-market.ru"