Автоматическое получение SSL сертификатов

У меня есть свой DNS сервер на BIND9 далее он направляет на сервак nginx. Иногда для работы мне приходится брать доменные адреса и каждый раз в ручную получать на них сертификаты.

Подскажите пожалуйста как можно получать автоматически ssl сертификаты от let's encrypt без моего участия и траты лишнего времени на этот процесс?


Ответы (1 шт):

Автор решения: eri

Чтоб не отвечать на вопросы передай ему ответы через параметры.

   -n               Run non-interactively
  --agree-tos       Agree to the ACME server's Subscriber Agreement
   -m EMAIL         Email address for important account notifications

Автоматическое подтверждение через bind

Настройка

/etc/bind/named.conf.local

key "letsencrypt-key" {
        algorithm hmac-sha256;
        secret "Ваш секретный ключ";
};

/etc/bind/named.conf.zones

zone "example.ru" {
        type master;
        file "/etc/bind/example.ru";

//      allow-update {
//              //none;
//              key letsencrypt-key.;
//      };

///....;


        update-policy {
                grant letsencrypt-key. name _acme-challenge.example.ru. TXT;
                grant letsencrypt-key. name _acme-challenge.sub.example.ru. TXT;
                grant letsencrypt-key. wildcard *.example.ru. TXT;
                deny letsencrypt-key. name mail._domainkey.example.ru. TXT;
                deny letsencrypt-key. name example.ru. TXT;
        };

};

Получение сертификата на внутренний домен

Установка

apt install certbot python3-certbot-dns-rfc2136 python3-certbot-nginx

Настройка

Прописать ключик в /etc/letsencrypt/rfc2136.ini

# Target DNS server (IPv4 or IPv6 address, not a hostname)
dns_rfc2136_server = Айпишник бинда
# Target DNS port
dns_rfc2136_port = 53
# TSIG key name
dns_rfc2136_name = letsencrypt-key.
# TSIG key secret
dns_rfc2136_secret = Ваш секретный ключ
# TSIG key algorithm
dns_rfc2136_algorithm = HMAC-SHA256
# TSIG sign SOA query (optional, default: false)
dns_rfc2136_sign_query = false

Получение сертификата

certbot certonly --dns-rfc2136 \
                 --dns-rfc2136-credentials=/etc/letsencrypt/rfc2136.ini \
                 -d example.ru

Получение с установкой в nginx (reload при обновлении)

certbot --installer nginx --dns-rfc2136 \
        --dns-rfc2136-credentials=/etc/letsencrypt/rfc2136.ini \
        -d examle.ru
→ Ссылка