Ci-dessous, les différences entre deux révisions de la page.
Both sides previous revision Révision précédente | |||
si:acme-dns [2021/02/24 17:47] pitchum [Certificat Wildcard avec dehydrated] |
si:acme-dns [2022/02/13 19:32] pitchum |
||
---|---|---|---|
Ligne 133: | Ligne 133: | ||
#!/usr/bin/env bash | #!/usr/bin/env bash | ||
- | set -e | + | set |
set -u | set -u | ||
set -o pipefail | set -o pipefail | ||
Ligne 205: | Ligne 205: | ||
<code>chmod +x /etc/cron.weekly/acme-renew</code> | <code>chmod +x /etc/cron.weekly/acme-renew</code> | ||
+ | |||
+ | ===== Créer le certificat avec Certbot ===== | ||
+ | |||
+ | Cette méthode nécessite le plugin [[https://certbot-dns-rfc2136.readthedocs.io/en/stable/|certbot-dns-rfc2136]]. | ||
+ | |||
+ | Installer les paquets nécessaires : | ||
+ | |||
+ | <code> | ||
+ | sudo apt install certbot python3-certbot-dns-rfc2136 | ||
+ | </code> | ||
+ | |||
+ | Définir les variables qui seront utilisées par la suite : | ||
+ | |||
+ | <code> | ||
+ | export DOMAIN=mondomaine.net | ||
+ | export DNSSERVER=x.x.x.x | ||
+ | </code> | ||
+ | |||
+ | Créer le fichier ///etc/letsencrypt/nsupdate-credentials-${DOMAIN}.ini// : | ||
+ | |||
+ | <code> | ||
+ | cat << EOF | sudo tee /etc/letsencrypt/nsupdate-credentials-${DOMAIN}.ini | ||
+ | dns_rfc2136_server = ${DNSSERVER} | ||
+ | dns_rfc2136_port = 53 | ||
+ | dns_rfc2136_name = rndc-acme-challenge.${DOMAIN}-key | ||
+ | dns_rfc2136_secret = xxxxxxxxxxxxxxxx | ||
+ | dns_rfc2136_algorithm = HMAC-SHA256 | ||
+ | EOF | ||
+ | </code> | ||
+ | |||
+ | Avec des permissions restreintes : | ||
+ | |||
+ | <code>sudo chmod 600 /etc/letsencrypt/nsupdate-credentials-${DOMAIN}.ini</code> | ||
+ | |||
+ | Créer le script hook a exécuter après chaque renouvellement de certificat : | ||
+ | |||
+ | <code> | ||
+ | cat << EOF | sudo tee /etc/letsencrypt/renewal-hooks/post/reload-services.sh | ||
+ | #! /bin/sh | ||
+ | systemctl reload nginx | ||
+ | EOF | ||
+ | </code> | ||
+ | |||
+ | Et le rendre exécutable : | ||
+ | |||
+ | <code>sudo chmod u+x /etc/letsencrypt/renewal-hooks/post/reload-services.sh</code> | ||
+ | |||
+ | Puis lancer certbot certonly : | ||
+ | |||
+ | <code> | ||
+ | certbot certonly \ | ||
+ | --expand --non-interactive --agree-tos --email root@${DOMAIN} \ | ||
+ | --dns-rfc2136 \ | ||
+ | --dns-rfc2136-propagation-seconds 3 \ | ||
+ | --dns-rfc2136-credentials /etc/letsencrypt/nsupdate-credentials-${DOMAIN}.ini \ | ||
+ | -d "*.${DOMAIN}" -d ${DOMAIN} \ | ||
+ | --post-hook /etc/letsencrypt/renewal-hooks/post/reload-services.sh | ||
+ | </code> | ||
+ |