|
|
| Ligne 137 : |
Ligne 137 : |
| === 🔧 Solution A === | | === 🔧 Solution A === |
| ----- | | ----- |
| | | `certbot/certbot:v2.9.0` |
| ==== 1️⃣ Créer le Dockerfile ==== | | ==== 1️⃣ Créer le Dockerfile ==== |
|
| |
|
| Ligne 220 : |
Ligne 220 : |
|
| |
|
| </syntaxhighlight> | | </syntaxhighlight> |
| -----
| |
| === 🔧 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"
| |
| entrypoint: >
| |
| certbot certonly
| |
| --dns-ovh
| |
| --dns-ovh-credentials /secrets/ovh.ini
| |
| --non-interactive
| |
| --agree-tos
| |
| -d example.com
| |
| -d '*.example.com'</syntaxhighlight>
| |
| <blockquote>Remplace <code>example.com</code> par ton domaine réel. Le volume <code>/secrets</code> pointe sur ton fichier OVH existant.
| |
| </blockquote>
| |
|
| |
| -----
| |
|
| |
| ==== 3️⃣ Construire l’image Docker ====
| |
|
| |
| <syntaxhighlight lang="bash">cd ~/certbot-docker
| |
| docker compose build</syntaxhighlight>
| |
| * Cela crée une image <code>certbot-ovh</code> avec le plugin OVH inclus.
| |
|
| |
|
| |
| -----
| |
|
| |
| ==== 4️⃣ Lancer la génération du certificat ====
| |
|
| |
| <syntaxhighlight lang="bash">docker compose up</syntaxhighlight>
| |
| * Les certificats seront dans <code>/etc/letsencrypt/live/example.com/</code>
| |
| * Une fois terminé :
| |
|
| |
| <syntaxhighlight lang="bash">docker compose down</syntaxhighlight>
| |
|
| |
| -----
| |
|
| |
| ==== 5️⃣ Renouvellement automatique ====
| |
|
| |
| Créer un script <code>renew.sh</code> à côté de <code>docker-compose.yml</code> :
| |
|
| |
| <syntaxhighlight lang="bash">#!/bin/bash
| |
| docker compose run --rm certbot renew --deploy-hook "systemctl reload mariadb"</syntaxhighlight>
| |
| * Rendre le script exécutable :
| |
|
| |
| <syntaxhighlight lang="bash">chmod +x renew.sh</syntaxhighlight>
| |
| * Ajouter un cron quotidien :
| |
|
| |
| <syntaxhighlight lang="bash">sudo crontab -e</syntaxhighlight>
| |
| <pre class="cron">0 3 * * * /home/debian/certbot-docker/renew.sh >> /var/log/certbot-renew.log 2>&1</pre>
| |
|
| |
| -----
| |
|
| |
|
| ✅ '''Avantages :''' | | ✅ '''Avantages :''' |
| Ligne 308 : |
Ligne 227 : |
| * Certificats wildcard Let’s Encrypt générés et renouvelables automatiquement | | * Certificats wildcard Let’s Encrypt générés et renouvelables automatiquement |
| * Compatible MariaDB, Nginx, Apache | | * Compatible MariaDB, Nginx, Apache |
| | |
| ----- | | ----- |
|
| |
|
| === 🔧 Solution C (à tester) === | | === 🔧 Solution B (à tester) === |
| | `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''' ==== |
|
| |
|