Générer un certificat Let's Encrypt avec OVH
Créer un certificat Let's Encrypt avec Certbot et le challenge DNS OVH.
Prérequis
- un domaine géré par OVH ;
- Python 3 et
venv; - un accès administrateur au serveur.
1. Créer les identifiants OVH
Ouvrir le formulaire de création d’un jeton OVH, puis autoriser :
GET /domain/zone/*;PUT /domain/zone/*;POST /domain/zone/*;DELETE /domain/zone/*;POST /domain/zone/*/refresh.
Créer /root/letsencrypt/.secrets/ovh.ini :
dns_ovh_endpoint = ovh-eu
dns_ovh_application_key = ...
dns_ovh_application_secret = ...
dns_ovh_consumer_key = ...
chmod 600 /root/letsencrypt/.secrets/ovh.ini
2. Installer Certbot
python3 -m venv /root/.venv/certbot
source /root/.venv/certbot/bin/activate
pip install --upgrade pip certbot certbot-dns-ovh
3. Configurer Certbot
Créer /root/letsencrypt/config/cli.ini :
config-dir = /root/letsencrypt/config
work-dir = /root/letsencrypt/work
logs-dir = /root/letsencrypt/logs
email = adresse@example.com
agree-tos = true
no-eff-email = true
4. Générer le certificat
certbot certonly \
--config /root/letsencrypt/config/cli.ini \
--dns-ovh \
--dns-ovh-credentials /root/letsencrypt/.secrets/ovh.ini \
-d "*.example.com" \
-d "example.com"
5. Contrôler le résultat
certbot certificates --config /root/letsencrypt/config/cli.ini
Les fichiers sont dans /root/letsencrypt/config/live/example.com/.
6. Déployer le certificat
Exemple avec SSH :
scp -P 2222 -O \
/root/letsencrypt/config/live/example.com/*.pem \
root@10.0.1.1:/etc/ssl/example.com/
Pour OpenWrt :
chmod 600 /etc/ssl/example.com/privkey.pem
chmod 644 /etc/ssl/example.com/fullchain.pem
uci set uhttpd.main.cert='/etc/ssl/example.com/fullchain.pem'
uci set uhttpd.main.key='/etc/ssl/example.com/privkey.pem'
uci commit uhttpd
/etc/init.d/uhttpd restart
Révoquer le certificat
certbot revoke \
--cert-path /root/letsencrypt/config/live/example.com/cert.pem \
--key-path /root/letsencrypt/config/live/example.com/privkey.pem \
--config /root/letsencrypt/config/cli.ini
Checklist
- Jeton OVH créé avec les droits nécessaires
-
ovh.iniprotégé en mode600 - Certificat généré et contrôlé
- Certificat déployé
- HTTPS vérifié sur la cible