Некоторое время назад стало возможно получать 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"
В интерактивном меню отвечаем на вопросы:
- Вводим свой email
- Подтверждаем право – создаем т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"