« Ovh letsencrypt » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
OVH prend en charge les certificats wildcard via son API. Cela signifie que vous pouvez utiliser l'API OVH pour automatiser la validation DNS requise par Let's Encrypt lors de la génération ou du renouvellement d'un certificat wildcard. | OVH prend en charge les certificats wildcard via son API. Cela signifie que vous pouvez utiliser l'API OVH pour automatiser la validation DNS requise par Let's Encrypt lors de la génération ou du renouvellement d'un certificat wildcard. | ||
== 1. Pourquoi utiliser l'API OVH pour les certificats wildcard ? == | |||
Validation DNS : Let's Encrypt nécessite une validation DNS pour les certificats wildcard. L'API OVH vous permet d'automatiser la création et la suppression des enregistrements DNS TXT nécessaires.<br /> | Validation DNS : Let's Encrypt nécessite une validation DNS pour les certificats wildcard. L'API OVH vous permet d'automatiser la création et la suppression des enregistrements DNS TXT nécessaires.<br /> | ||
Automatisation : Avec l'API, vous pouvez intégrer le processus de renouvellement des certificats dans vos scripts ou outils d'automatisation (comme Certbot).<br /> | Automatisation : Avec l'API, vous pouvez intégrer le processus de renouvellement des certificats dans vos scripts ou outils d'automatisation (comme Certbot).<br /> | ||
Gestion centralisée : Si vous utilisez OVH comme fournisseur DNS, l'API vous permet de gérer vos enregistrements DNS programmatiquement.<br /> | Gestion centralisée : Si vous utilisez OVH comme fournisseur DNS, l'API vous permet de gérer vos enregistrements DNS programmatiquement.<br /> | ||
== 2. Comment utiliser l'API OVH avec Certbot pour les certificats wildcard == | |||
=== Étape 1 : Créer une application API OVH === | |||
: Allez sur la page des API OVH : https://api.ovh.com/. | : Allez sur la page des API OVH : https://api.ovh.com/. | ||
: Connectez-vous à votre compte OVH. | : Connectez-vous à votre compte OVH. | ||
| Ligne 35 : | Ligne 35 : | ||
: Consumer Key (CK) | : Consumer Key (CK) | ||
=== Étape 2 : Configurer Certbot avec le plugin DNS OVH === | |||
Installez Certbot et le plugin DNS OVH :<br /> | Installez Certbot et le plugin DNS OVH :<br /> | ||
Sur Debian/Ubuntu : | Sur Debian/Ubuntu : | ||
| Ligne 62 : | Ligne 62 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== Gestion des token des applications ==== | |||
: Dans la console de l'api | : Dans la console de l'api | ||
https://eu.api.ovh.com/console/?section=%2Fdomain&branch=v1#auth | https://eu.api.ovh.com/console/?section=%2Fdomain&branch=v1#auth | ||
| Ligne 71 : | Ligne 71 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Étape 3 : Obtenir un certificat wildcard === | |||
Utilisez Certbot avec le plugin DNS OVH pour obtenir un certificat wildcard : | Utilisez Certbot avec le plugin DNS OVH pour obtenir un certificat wildcard : | ||
<syntaxhighlight lang="bash" line> | <syntaxhighlight lang="bash" line> | ||
| Ligne 78 : | Ligne 78 : | ||
Certbot utilisera l'API OVH pour créer automatiquement l'enregistrement DNS TXT requis pour la validation. | Certbot utilisera l'API OVH pour créer automatiquement l'enregistrement DNS TXT requis pour la validation. | ||
=== Étape 4 : Automatiser le renouvellement === | |||
Let's Encrypt émet des certificats valides pendant 90 jours. Vous devez automatiser le renouvellement. | Let's Encrypt émet des certificats valides pendant 90 jours. Vous devez automatiser le renouvellement. | ||
Ajoutez une tâche cron pour renouveler automatiquement les certificats : | Ajoutez une tâche cron pour renouveler automatiquement les certificats : | ||
| Ligne 89 : | Ligne 89 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 3. Limitations et considérations == | |||
Limites de taux OVH : L'API OVH a des limites de taux (rate limits). Assurez-vous de ne pas dépasser ces limites lors de l'automatisation. | Limites de taux OVH : L'API OVH a des limites de taux (rate limits). Assurez-vous de ne pas dépasser ces limites lors de l'automatisation. | ||
| Ligne 96 : | Ligne 96 : | ||
Support des sous-domaines dynamiques : Les certificats wildcard ne sont pas idéaux pour les sous-domaines créés dynamiquement (par exemple, dans les environnements SaaS). | Support des sous-domaines dynamiques : Les certificats wildcard ne sont pas idéaux pour les sous-domaines créés dynamiquement (par exemple, dans les environnements SaaS). | ||
== 4. Exemple complet == | |||
Voici un exemple complet pour obtenir un certificat wildcard avec OVH et Certbot : | Voici un exemple complet pour obtenir un certificat wildcard avec OVH et Certbot : | ||
| Ligne 128 : | Ligne 128 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Conclusion == | |||
OVH prend en charge les certificats wildcard via son API, ce qui permet d'automatiser la validation DNS avec Let's Encrypt. En utilisant Certbot et le plugin DNS OVH, vous pouvez facilement obtenir et renouveler des certificats wildcard pour vos sous-domaines. | OVH prend en charge les certificats wildcard via son API, ce qui permet d'automatiser la validation DNS avec Let's Encrypt. En utilisant Certbot et le plugin DNS OVH, vous pouvez facilement obtenir et renouveler des certificats wildcard pour vos sous-domaines. | ||
| Ligne 134 : | Ligne 134 : | ||
== Debian 13 pour Certbot + plugin OVH avec Docker == | |||
=== 🔧 Solution A === | |||
----- | ----- | ||
==== 1️⃣ Créer le Dockerfile ==== | |||
Dans un dossier <code>~/certbot-docker</code> : | Dans un dossier <code>~/certbot-docker</code> : | ||
| Ligne 155 : | Ligne 155 : | ||
----- | ----- | ||
==== 2️⃣ Créer le docker-compose.yml ==== | |||
Toujours dans <code>~/certbot-docker</code> : | Toujours dans <code>~/certbot-docker</code> : | ||
| Ligne 172 : | Ligne 172 : | ||
----- | ----- | ||
==== 3️⃣ Script Bash demande initiale `inital.sh` ==== | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Ligne 186 : | Ligne 186 : | ||
<syntaxhighlight lang="bash">docker compose down</syntaxhighlight> | <syntaxhighlight lang="bash">docker compose down</syntaxhighlight> | ||
==== 4️⃣ Script Bash renew `renew.sh` ==== | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Ligne 221 : | Ligne 221 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
----- | ----- | ||
=== 🔧 Solution B === | |||
----- | ----- | ||
==== 1️⃣ Créer le Dockerfile ==== | |||
Dans un dossier <code>~/certbot-docker</code> : | Dans un dossier <code>~/certbot-docker</code> : | ||
| Ligne 240 : | Ligne 240 : | ||
----- | ----- | ||
==== 2️⃣ Créer le docker-compose.yml ==== | |||
Toujours dans <code>~/certbot-docker</code> : | Toujours dans <code>~/certbot-docker</code> : | ||
| Ligne 267 : | Ligne 267 : | ||
----- | ----- | ||
==== 3️⃣ Construire l’image Docker ==== | |||
<syntaxhighlight lang="bash">cd ~/certbot-docker | <syntaxhighlight lang="bash">cd ~/certbot-docker | ||
| Ligne 276 : | Ligne 276 : | ||
----- | ----- | ||
==== 4️⃣ Lancer la génération du certificat ==== | |||
<syntaxhighlight lang="bash">docker compose up</syntaxhighlight> | <syntaxhighlight lang="bash">docker compose up</syntaxhighlight> | ||
| Ligne 286 : | Ligne 286 : | ||
----- | ----- | ||
==== 5️⃣ Renouvellement automatique ==== | |||
Créer un script <code>renew.sh</code> à côté de <code>docker-compose.yml</code> : | Créer un script <code>renew.sh</code> à côté de <code>docker-compose.yml</code> : | ||
| Ligne 309 : | Ligne 309 : | ||
* Compatible MariaDB, Nginx, Apache | * Compatible MariaDB, Nginx, Apache | ||
----- | ----- | ||
[[category:ovh]] [[category:Docker]] [[category:Debian]] | [[category:ovh]] [[category:Docker]] [[category:Debian]] | ||
Version du 6 octobre 2025 à 08:41
OVH prend en charge les certificats wildcard via son API. Cela signifie que vous pouvez utiliser l'API OVH pour automatiser la validation DNS requise par Let's Encrypt lors de la génération ou du renouvellement d'un certificat wildcard.
1. Pourquoi utiliser l'API OVH pour les certificats wildcard ?
Validation DNS : Let's Encrypt nécessite une validation DNS pour les certificats wildcard. L'API OVH vous permet d'automatiser la création et la suppression des enregistrements DNS TXT nécessaires.
Automatisation : Avec l'API, vous pouvez intégrer le processus de renouvellement des certificats dans vos scripts ou outils d'automatisation (comme Certbot).
Gestion centralisée : Si vous utilisez OVH comme fournisseur DNS, l'API vous permet de gérer vos enregistrements DNS programmatiquement.
2. Comment utiliser l'API OVH avec Certbot pour les certificats wildcard
Étape 1 : Créer une application API OVH
- Allez sur la page des API OVH : https://api.ovh.com/.
- Connectez-vous à votre compte OVH.
- Créez une nouvelle application API pour obtenir vos clés d'identification :
- https://www.ovh.com/auth/api/createToken
- Nom de l'application : Par exemple, Certbot Wildcard.
- Description : Par exemple, "Renouvellement automatique des certificats wildcard".
- Permissions : Accordez les permissions suivantes :
GET /domain/zone/
GET /domain/zone/exemple.com/
GET /domain/zone/exemple.com/status
GET /domain/zone/exemple.com/record
GET /domain/zone/exemple.com/record/*
POST /domain/zone/exemple.com/record
POST /domain/zone/exemple.com/refresh
DELETE /domain/zone/exemple.com/record/*
Notez les identifiants suivants :
- Application Key (AK)
- Application Secret (AS)
- Consumer Key (CK)
Étape 2 : Configurer Certbot avec le plugin DNS OVH
Installez Certbot et le plugin DNS OVH :
Sur Debian/Ubuntu :
sudo apt update
sudo apt install certbot python3-certbot-dns-ovh
Créez un fichier ovh.ini pour stocker vos clés API :
sudo mkdir -p /etc/letsencrypt/.secrets
sudo nano /etc/letsencrypt/.secrets/ovh.ini
Ajoutez les informations suivantes :
dns_ovh_endpoint = ovh-eu
dns_ovh_application_key = VOTRE_APPLICATION_KEY
dns_ovh_application_secret = VOTRE_APPLICATION_SECRET
dns_ovh_consumer_key = VOTRE_CONSUMER_KEY
Remplacez les valeurs par vos clés API OVH. Protégez le fichier :
sudo chmod 600 /etc/letsencrypt/.secrets/ovh.ini
Gestion des token des applications
- Dans la console de l'api
https://eu.api.ovh.com/console/?section=%2Fdomain&branch=v1#auth
GET https://eu.api.ovh.com/v1/me/api/application/
GET https://eu.api.ovh.com/v1/me/api/application/{id}
DELETE https://eu.api.ovh.com/v1/me/api/application/{id}
Étape 3 : Obtenir un certificat wildcard
Utilisez Certbot avec le plugin DNS OVH pour obtenir un certificat wildcard :
sudo certbot certonly --dns-ovh --dns-ovh-credentials /etc/letsencrypt/.secrets/ovh.ini -d votre-domaine.com -d *.votre-domaine.com
Certbot utilisera l'API OVH pour créer automatiquement l'enregistrement DNS TXT requis pour la validation.
Étape 4 : Automatiser le renouvellement
Let's Encrypt émet des certificats valides pendant 90 jours. Vous devez automatiser le renouvellement. Ajoutez une tâche cron pour renouveler automatiquement les certificats :
sudo crontab -e
Ajoutez la ligne suivante pour renouveler les certificats tous les jours à minuit :
0 0 * * * certbot renew --dns-ovh --dns-ovh-credentials /etc/letsencrypt/.secrets/ovh.ini --quiet
3. Limitations et considérations
Limites de taux OVH : L'API OVH a des limites de taux (rate limits). Assurez-vous de ne pas dépasser ces limites lors de l'automatisation.
Sécurité des clés API : Protégez vos clés API OVH. Ne les exposez pas publiquement.
Support des sous-domaines dynamiques : Les certificats wildcard ne sont pas idéaux pour les sous-domaines créés dynamiquement (par exemple, dans les environnements SaaS).
4. Exemple complet
Voici un exemple complet pour obtenir un certificat wildcard avec OVH et Certbot :
# Installer Certbot et le plugin DNS OVH
sudo apt update
sudo apt install certbot python3-certbot-dns-ovh
# Créer le fichier de configuration OVH
sudo mkdir -p /etc/letsencrypt/.ovhsecrets
sudo nano /etc/letsencrypt/.ovhsecrets/ovh.ini
# Ajouter les informations suivantes dans ovh.ini
dns_ovh_endpoint = ovh-eu
dns_ovh_application_key = VOTRE_APPLICATION_KEY
dns_ovh_application_secret = VOTRE_APPLICATION_SECRET
dns_ovh_consumer_key = VOTRE_CONSUMER_KEY
# Protéger le fichier
sudo chmod 600 /etc/letsencrypt/.ovhsecrets/ovh.ini
# Obtenir un certificat wildcard
sudo certbot certonly --dns-ovh --dns-ovh-credentials /etc/letsencrypt/.ovhsecrets/ovh.ini -d exemple.com -d *.exemple.com
# Automatiser le renouvellement
sudo crontab -e
# Ajouter cette ligne
#0 0 * * * certbot renew --dns-ovh --dns-ovh-credentials /etc/letsencrypt/.ovhsecrets/ovh.ini --quiet
01 00 * * * root /usr/bin/certbot certonly --dns-ovh --dns-ovh-credentials /etc/letsencrypt/.ovhsecrets/ovh.ini --non-interactive --agree-tos --email email@mail.fr -d exemple.com -d *.exemple.com
Conclusion
OVH prend en charge les certificats wildcard via son API, ce qui permet d'automatiser la validation DNS avec Let's Encrypt. En utilisant Certbot et le plugin DNS OVH, vous pouvez facilement obtenir et renouveler des certificats wildcard pour vos sous-domaines.
Source: deepseek.
Debian 13 pour Certbot + plugin OVH avec Docker
🔧 Solution A
1️⃣ Créer le Dockerfile
Dans un dossier ~/certbot-docker :
mkdir -p ~/certbot-docker
cd ~/certbot-docker
nano Dockerfile
Contenu du Dockerfile:
# Dockerfile pour Certbot + plugin OVH
FROM certbot/certbot:v2.9.0
# Installer le plugin OVH
RUN pip install certbot-dns-ovh
2️⃣ Créer le docker-compose.yml
Toujours dans ~/certbot-docker :
version: "3.8"
services:
certbot:
build: .
container_name: certbot-ovh
volumes:
- "/etc/letsencrypt:/etc/letsencrypt"
- "/var/lib/letsencrypt:/var/lib/letsencrypt"
- "/etc/letsencrypt/.ovhsecrets:/secrets"
3️⃣ Script Bash demande initiale `inital.sh`
docker compose run --rm certbot \
certonly \
--dns-ovh \
--dns-ovh-credentials /secrets/ovh.ini \
--non-interactive \
--agree-tos \
-d example.com -d '*.example.com'
docker compose down
4️⃣ Script Bash renew `renew.sh`
#!/bin/bash
# Renew certificat Let's Encrypt via Docker + notification email
LOGFILE="/var/log/certbot-renew-docker.log"
EMAIL="john@gmail.com"
FROM="cron letsencrypt <john@exemple.com>"
# Nettoyage du log
echo "" > "$LOGFILE"
cd /home/debian/certbot-docker/
# Lancer le renouvellement via Docker Compose
docker compose run --rm certbot renew >> "$LOGFILE" 2>&1
RESULT=$?
# Si renouvellement réussi
if [ $RESULT -eq 0 ]; then
# Recharger Apache sur l’hôte
systemctl reload apache2
# Envoyer un mail de succès
mail -a "From: $FROM" -s "✅ CERTBOT Renew réussi (Docker) pour example.com" "$EMAIL" < "$LOGFILE"
else
# Envoyer un mail d’erreur
mail -a "From: $FROM" -s "❌ CERTBOT Renew ÉCHEC (Docker) pour example.com" "$EMAIL" < "$LOGFILE"
fi
exit 0
🔧 Solution B
1️⃣ Créer le Dockerfile
Dans un dossier ~/certbot-docker :
mkdir -p ~/certbot-docker
cd ~/certbot-docker
nano Dockerfile
Contenu du Dockerfile:
# Dockerfile pour Certbot + plugin OVH
FROM certbot/certbot:v2.9.0
# Installer le plugin OVH
RUN pip install certbot-dns-ovh
2️⃣ Créer le docker-compose.yml
Toujours dans ~/certbot-docker :
version: "3.8"
services:
certbot:
build: .
container_name: certbot-ovh
volumes:
- "/etc/letsencrypt:/etc/letsencrypt"
- "/var/lib/letsencrypt:/var/lib/letsencrypt"
- "/etc/letsencrypt/.ovhsecrets:/secrets"
entrypoint: >
certbot certonly
--dns-ovh
--dns-ovh-credentials /secrets/ovh.ini
--non-interactive
--agree-tos
-d example.com
-d '*.example.com'
Remplace
example.compar ton domaine réel. Le volume/secretspointe sur ton fichier OVH existant.
3️⃣ Construire l’image Docker
cd ~/certbot-docker
docker compose build
- Cela crée une image
certbot-ovhavec le plugin OVH inclus.
4️⃣ Lancer la génération du certificat
docker compose up
- Les certificats seront dans
/etc/letsencrypt/live/example.com/ - Une fois terminé :
docker compose down
5️⃣ Renouvellement automatique
Créer un script renew.sh à côté de docker-compose.yml :
#!/bin/bash
docker compose run --rm certbot renew --deploy-hook "systemctl reload mariadb"
- Rendre le script exécutable :
chmod +x renew.sh
- Ajouter un cron quotidien :
sudo crontab -e
0 3 * * * /home/debian/certbot-docker/renew.sh >> /var/log/certbot-renew.log 2>&1
✅ Avantages :
- Plugin OVH fonctionne immédiatement
- Debian 13 reste intact → pas de pip system-wide ni Snap
- Certificats wildcard Let’s Encrypt générés et renouvelables automatiquement
- Compatible MariaDB, Nginx, Apache