2.5 KiB
title | date | draft | tags | ||
---|---|---|---|---|---|
De hydrated à Certbot | 2023-04-22T23:52:19+02:00 | false |
|
Le commencement
J'utilisais pour générer mes certificats x509
la solution dehydrated dès le premier jour ou presque de mon usage avec let's encrypt.
Du bash hyper simple pour faire le sucre nécessaire à l'obtention de certificats letsencrypt ou respectant les challenges acme. C'était très bien.
Le client officiel était quant à lui lourd peu modulaire avec peu d'extension. L'idée initial car nouveauté était :
je fais tout pour toi
Je suis pas fan. Sérieusement, modifier les vhosts de mon serveur web, c'est un grand non.
Les temps ont changés, des options moins intrusive éxistent et dorénavant j'utilise la rfc2136 pour obtenir mon wildcard plutôt qu'un gros INSERT
dans ma base PostgreSQL.
J'ai du louper des choses car régulièrement ça ne fonctionne pas bien, surement des échappements ou autre.
Je pense qu'en insistant plus j'aurais fini par trouver la solution. Mais pourquoi ne pas essayer autre chose et (re)voir le client officiel certbot ?
Certbot
La documentation utilisateur est de qualité. Passons donc à l'install.
Install
Le client officiel letsencrypt/acme est en python, disponible sur PyPi. J'ai aussi besoin du plugin rfc2136, allons-y donc :
pip install certbot certbot-dns-rfc2136
Une liste plus grande des plugins disponibles via https://eff-certbot.readthedocs.io/en/stable/using.html#dns-plugins
Migration dehydrated→certbot
Mais pourquoi migrer ? hop on part from scratch !
Oui mais alors non.
Si vous n'utilisez pas DANE-EE
mais plutôt PKIX-EE
, OUI ne rien migrer est une bonne idée. Bon évidemment moi j'utilise DANE-EE
car je ne souhaite pas distribuer de manière automatique la clé privée. Peut-être un jour une autre façon de faire.
A voir
Réimport
Les fichiers de dehydrated
comportent des sauts de lignes que certbot ne sait pas lire.
Fixons cela:
find . -type f -name '*.pem' | xargs sed -i '/^$/d'
Il y a aussi une problématique sur les noms des fichiers. Il faut que ça respecte la nomenclature à savoir <filename>XXX.<extension> ou XXX est un chiffre.
Si vos certificats utilisent une clé ECDSA il faut spécifier ceci dans cli.ini
# Use ECC for the private key
key-type = ecdsa
elliptic-curve = secp384r1
Et voilà