« Ovh letsencrypt » : différence entre les versions

Ligne 225 : Ligne 225 :
* Compatible MariaDB, Nginx, Apache
* Compatible MariaDB, Nginx, Apache


==== Solution B ====
-----
===== 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 marmits.com -d '*.marmits.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 marmits.com" "$EMAIL" < "$LOGFILE"
else
    # Envoyer un mail d’erreur
    mail -a "From: $FROM" -s "❌ CERTBOT Renew ÉCHEC (Docker) pour marmits.com" "$EMAIL" < "$LOGFILE"
fi
exit 0
</syntaxhighlight>


-----
-----






[[category:ovh]]
[[category:ovh]]