User Tools

Site Tools


let_s_encrypt_для_внутренних_сайтов

This is an old revision of the document!


Let's Encrypt для внутренних сайтов

dns# cat /etc/bind/anydomain.ru
...
anysite                 A       N.N.N.N
*.anysite               CNAME   anysite
_acme-challenge.anysite NS ns
...

dns# cat /etc/bind/named.conf.anydomain-common-slave
...
zone "_acme-challenge.anysite.anydomain.ru" {
        type master;
        file "/var/lib/bind/_acme-challenge.anysite.anydomain.ru";
        update-policy {
          grant certbot.anysite name _acme-challenge.anysite.anydomain.ru. txt;
        };
};
...

dns# cat /etc/bind/named.conf.anydomain-common-slave-in-view
...
zone "_acme-challenge.anysite.anydomain.ru" {in-view "common";};
...

dns# sudo -u bind vim /var/lib/bind/_acme-challenge.anysite.anydomain.ru

$TTL 30 ; 30 seconds
_acme-challenge.anysite.anydomain.ru. IN SOA ns.anydomain.ru. noc.anydomain.ru. (
                                1          ; serial
                                86400      ; refresh (1 day)
                                43200      ; retry (12 hours)
                                604800     ; expire (1 week)
                                30         ; minimum (30 seconds)
                                )
                        NS      ns.anydomain.ru.
						
dns# rndc-confgen -a -A hmac-sha512 -k "certbot.anysite" -c /etc/bind/certbot.anysite.key

dns# chmod 640 /etc/bind/certbot.anysite.key

dns# cat /etc/bind/named.conf
...
include "/etc/bind/certbot.anysite.key";
...

dns# named-checkconf -z | less

dns# rndc reload

dns# less /etc/bind/certbot.anysite.key

# dns# scp /etc/bind/certbot.anysite.key val@bro:

# val@bro:~$ nsupdate -k certbot.anysite.key
# > server 195.19.32.2
# > zone _acme-challenge.anysite.anydomain.ru
# > update add _acme-challenge.anysite.anydomain.ru. 30 IN TXT "your_txt_record_data 1"
# > send
# > update del _acme-challenge.anysite.anydomain.ru. 30 IN TXT "your_txt_record_data 1"
# > send
# > quit

# any-any-site# nslookup -q=TXT _acme-challenge.anysite.anydomain.ru
# any-any-site# host -t TXT _acme-challenge.anysite.anydomain.ru
# any-any-site# dig TXT _acme-challenge.anysite.anydomain.ru

====
Что необходимо сделать:

1. Установить плагин certbot-dns, в debian/ubuntu делается так:

anysite# apt install python3-certbot-dns-rfc2136

2. Создать файл конфигурации с таким содержимым:

anysite# cat /etc/certbot-credentials.ini
dns_rfc2136_server = 195.19.32.2
dns_rfc2136_port = 53
dns_rfc2136_name = certbot.anysite
dns_rfc2136_secret = d+P0fg32FsGV0CYOTmWBkQLjG4KnUNNNNNNNNNNNNNNNNNNNNNNNNNNNNN9QF5pzH+MpbYqGa1WB/yh1Q==
dns_rfc2136_algorithm = HMAC-SHA512

3. Назначить права доступа к нему:

anysite# chmod 640 /etc/certbot-credentials.ini

4. Запросить сертификаты и убедиться в их создании

anysite# certbot certonly --dns-rfc2136 --dns-rfc2136-credentials /etc/certbot-credentials.ini -d 'anysite.anydomain.ru' -d '*.anysite.anydomain.ru'
...
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/anysite.anydomain.ru/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/anysite.anydomain.ru/privkey.pem

5. Для автоматического продления убедиться в создании файла конфигурации и, наличии таймеров и сервисов

anysite:~# cat /etc/letsencrypt/renewal/anysite.anydomain.ru.conf

anysite# systemctl status certbot.timer
...
     Active: active (waiting) ...
...

anysite# systemctl show certbot.service
...
TriggeredBy: ● certbot.timer
...

Спасибо!
====



dns# journalctl | grep -i _acme-challenge.anysite
...
Nov 26 14:06:37 ns named[213146]: client @0x7f4711f3f898 195.19.32.16#60008/key certbot.anysite: view anydomainnet: updating zone '_acme-challenge.anysite.anydomain.ru/IN': adding an RR at '_acme-challenge.anysite.anydomain.ru' TXT "7VqXPt5zZ36jRFe9A61om1OALWFloaI2Rz7_OGtFYpM"
Nov 26 14:06:37 ns named[213146]: client @0x7f471200dc98 195.19.32.16#60020/key certbot.anysite: view anydomainnet: updating zone '_acme-challenge.anysite.anydomain.ru/IN': adding an RR at '_acme-challenge.anysite.anydomain.ru' TXT "O67R1nFhhli0YaMQ2j-AtefRO0wr7mUwICbtzGnR_64"
Nov 26 14:07:43 ns named[213146]: client @0x7f4711ab5498 195.19.32.16#36166/key certbot.anysite: view anydomainnet: updating zone '_acme-challenge.anysite.anydomain.ru/IN': deleting an RR at _acme-challenge.anysite.anydomain.ru TXT
Nov 26 14:07:43 ns named[213146]: client @0x7f4711f38898 195.19.32.16#36180/key certbot.anysite: view anydomainnet: updating zone '_acme-challenge.anysite.anydomain.ru/IN': deleting an RR at _acme-challenge.anysite.anydomain.ru TXT
...
let_s_encrypt_для_внутренних_сайтов.1765873392.txt.gz · Last modified: 2025/12/16 11:23 by val