« Ovh letsencrypt » : différence entre les versions
Aucun résumé des modifications |
|||
| Ligne 135 : | Ligne 135 : | ||
== Debian 13 pour Certbot + plugin OVH avec Docker == | == Debian 13 pour Certbot + plugin OVH avec Docker == | ||
=== 🔧 Solution A | === 🔧 Solution A (BEST)=== | ||
`certbot/dns-ovh:latest` | `certbot/dns-ovh:latest` | ||
==== ✅ '''1. Script <code>initial.sh</code> – Création initiale du certificat''' ==== | ==== ✅ '''1. Script <code>initial.sh</code> – Création initiale du certificat''' ==== | ||
| Ligne 358 : | Ligne 263 : | ||
----- | ----- | ||
=== 🔧 Solution B (Old) === | |||
----- | |||
`certbot/certbot:v2.9.0` | |||
==== 1️⃣ Créer le Dockerfile ==== | |||
Dans un dossier <code>~/certbot-docker</code> : | |||
<syntaxhighlight lang="bash">mkdir -p ~/certbot-docker | |||
cd ~/certbot-docker | |||
nano Dockerfile</syntaxhighlight> | |||
Contenu du Dockerfile: | |||
<syntaxhighlight lang="dockerfile"># Dockerfile pour Certbot + plugin OVH | |||
FROM certbot/certbot:v2.9.0 | |||
# Installer le plugin OVH | |||
RUN pip install certbot-dns-ovh</syntaxhighlight> | |||
----- | |||
==== 2️⃣ Créer le docker-compose.yml ==== | |||
Toujours dans <code>~/certbot-docker</code> : | |||
<syntaxhighlight lang="yaml">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" | |||
</syntaxhighlight> | |||
----- | |||
==== 3️⃣ Script Bash demande initiale `inital.sh` ==== | |||
<syntaxhighlight lang="bash"> | |||
docker compose run --rm certbot \ | |||
certonly \ | |||
--dns-ovh \ | |||
--dns-ovh-credentials /secrets/ovh.ini \ | |||
--non-interactive \ | |||
--agree-tos \ | |||
-d example.com -d '*.example.com' | |||
</syntaxhighlight> | |||
----- | |||
<syntaxhighlight lang="bash">docker compose down</syntaxhighlight> | |||
==== 4️⃣ Script Bash renew `renew.sh` ==== | |||
<syntaxhighlight lang="bash"> | |||
#!/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 | |||
</syntaxhighlight> | |||
✅ '''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 | |||
----- | |||
[[category:ovh]] [[category:Docker]] [[category:Debian]] | [[category:ovh]] [[category:Docker]] [[category:Debian]] | ||