Wiki CgX

Parce que j'ai un cerveau, mais pas trop.

Outils pour utilisateurs

Outils du site


it:linux-selfhosting:bind

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
it:linux-selfhosting:bind [01 Mar 2022 :: 11:46] – ↷ Liens modifiés en raison d'un déplacement. CgXit:linux-selfhosting:bind [30 May 2022 :: 13:53] (Version actuelle) CgX
Ligne 109: Ligne 109:
 </code> </code>
  
 +===== Installer un serveur DNS over HTTPS =====
  
-===== Valider automatiquement un certificat Let's Encrypt en dns-01 =====+C'est [[it:linux-selfhosting:doh|par ici]] !
  
-<WRAP center round info 60%> +===== Vider les versions signées des domaines  ====
-Postulat : On veut créer un certificat wildcard *.domain.tld avec letsencrypt. On a un serveur bind autoritaire sous la main, en local sur la machine. +
-</WRAP>+
  
-==== Etape 1 : créer un accès a bind ==== +<code>rndc -sync clean</code>
- +
-  * D'abord on génère une nouvelle clé (si possible dans le répertoire qui va bien ///var/cache/bind/keys//) : +
-<code>dnssec-keygen -a HMAC-SHA512 -b 512 -n HOST letsencrypt</code> +
-  * Ensuite on va récupérer le contenu de la clé dans l'un des fichiers : letsencrypt. IN KEY 512 3 165 ''6kB<bla bla pleins de trucs>aCA=='' +
-  * On va le coller dans le fichier que va utiliser certbot pour accéder a la zone ((Ici, le serveur bind est local (127.0.0.1), mais on peut mettre autre chose si besoin.)) : +
-<code - /etc/letsencrypt/rfc2136.ini>dns_rfc2136_server = 127.0.0.1 +
-dns_rfc2136_name = letsencrypt +
-dns_rfc2136_secret = 6kB<bla bla pleins de trucs>aCA== +
-dns_rfc2136_algorithm = HMAC-SHA512 +
-dns-rfc2136-propagation-seconds = 300 +
-</code> +
- +
-<WRAP center round important 60%> +
-L'option ''dns-rfc2136-propagation-seconds'' est facultative : il m'est arrivé que le renouvellement foire parce que l'enregistrement DNS ne se propage pas assez vite vers les NS secondaires. La valeur par défaut de cette option est **60** secondes. +
-</WRAP> +
- +
- +
-  * Et on va aussi le coller dans la config de bind : +
-<code config /etc/bind/named.conf.local> +
-key "letsencrypt"+
-    algorithm hmac-sha512; +
-    secret "6kB<bla bla pleins de trucs>aCA=="; +
-    }; +
-</code> +
-  * Dans le même fichier de config, rajouter l'accès à la zone elle-même : +
-<code config /etc/bind/named.conf.local> +
-zone "domain.tld" in { +
-    type master; +
-    file "domain.tld.named"; +
-    ... +
-    ... +
-    update-policy { grant letsencrypt name _acme-challenge.domain.tld. txt; }; +
-    }; +
-</code> +
-  * Et on restart : <code>service bind9 restart</code> +
- +
-==== Etape 2 : On teste à vide ==== +
- +
-<WRAP center round info 60%> +
-Ici, on souhaite générer un certificat pour ***.domain.tld** mais également pour **domain.tld**, car il n'est pas compris par défaut dans le wildcard ! +
-</WRAP> +
- +
-On teste une première génération en dry-run :  +
-<code>certbot certonly --dns-rfc2136 --dns-rfc2136-credentials /etc/letsencrypt/rfc2136.ini --preferred-challenges=dns --email=letsencrypt@domain.tld --agree-tos -d *.domain.tld -d domain.tld --dry-run</code> +
- +
-<WRAP center round important 60%> +
-Attention : Le fichier de zone étant modifié directement par bind pour ajouter puis retirer l'enregistrement TXT, il a tendance a mettre le bazar dans la syntaxe du fichier ! Pensez à faire une sauvegarde de votre zone "propre" avant de lancer ces commandes +
-</WRAP> +
- +
-Ce qui devrait donner à peu près ça : +
-<code>Saving debug log to /var/log/letsencrypt/letsencrypt.log +
- +
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
-Processing /usr/local/etc/letsencrypt/renewal/domain.tld.conf +
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
-Cert not due for renewal, but simulating renewal for dry run +
-Plugins selected: Authenticator dns-rfc2136, Installer None +
-Renewing an existing certificate +
-Performing the following challenges: +
-dns-01 challenge for domain.tld +
-Waiting 5 seconds for DNS changes to propagate +
-Waiting for verification... +
-Cleaning up challenges +
- +
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
-new certificate deployed without reload, fullchain is +
-/usr/local/etc/letsencrypt/live/domain.tld/fullchain.pem +
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
- +
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
-** DRY RUN: simulating 'certbot renew' close to cert expiry +
-**          (The test certificates below have not been saved.) +
- +
-Congratulations, all renewals succeeded. The following certs have been renewed: +
-  /usr/local/etc/letsencrypt/live/domain.tld.com/fullchain.pem (success) +
-** DRY RUN: simulating 'certbot renew' close to cert expiry +
-**          (The test certificates above have not been saved.) +
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</code> +
- +
-==== Etape 3 : On génère vraiment ==== +
- +
-Même commande que précédemment, mais sans le dry-run :  +
-<code>certbot certonly --dns-rfc2136 --dns-rfc2136-credentials /etc/letsencrypt/rfc2136.ini --preferred-challenges=dns --email=letsencrypt@domain.tld --agree-tos -d *.domain.tld -d domain.tld</code> +
- +
-Si tout se passe bien, vous aurez généré votre certificat wildcard ! +
- +
-===== Installer un serveur DNS over HTTPS ===== +
- +
-C'est [[it:linux-selfhosting:doh|par ici]] !+
  
 ===== Voir le cache ===== ===== Voir le cache =====
it/linux-selfhosting/bind.txt · Dernière modification : 30 May 2022 :: 13:53 de CgX