65 lines
2.5 KiB
Markdown
65 lines
2.5 KiB
Markdown
---
|
|
title: "De hydrated à Certbot"
|
|
date: 2023-04-22T23:52:19+02:00
|
|
draft: false
|
|
tags: ["tls", "tools"]
|
|
---
|
|
|
|
## Le commencement
|
|
|
|
J'utilisais pour générer mes certificats `x509` la solution [dehydrated](https://github.com/dehydrated-io/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](https://eff-certbot.readthedocs.io/en/stable/using.html) 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 :
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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`
|
|
|
|
```ini
|
|
# Use ECC for the private key
|
|
key-type = ecdsa
|
|
elliptic-curve = secp384r1
|
|
```
|
|
Et voilà |