Superviser Rocky Linux 9 avec Cockpit (console web)
20 août 2026Stress test CPU, GPU, SSD : comment tester la stabilité et les performances de votre PC
24 août 2026Un certificat SSL/TLS n’est plus une option en 2026 : sans HTTPS, votre site est signalé « non sécurisé » par tous les navigateurs et déclassé par les moteurs de recherche. Bonne nouvelle, Let’s Encrypt délivre des certificats gratuits et automatisés, et Rocky Linux 9 s’y prête très bien via Certbot. Ce guide couvre l’installation, l’obtention du certificat pour Nginx et Apache, les certificats wildcard, le renouvellement automatique et les pièges spécifiques à Rocky Linux 9 (firewalld, SELinux).
Au programme
- Prérequis
- Installer Certbot sur Rocky Linux 9
- Ouvrir les ports HTTP/HTTPS avec firewalld
- Obtenir un certificat (Nginx, Apache, webroot, standalone)
- Certificat wildcard (défi DNS-01)
- Vérifier la configuration SSL
- Renouvellement automatique
- Dépannage spécifique à Rocky Linux 9
- FAQ
1. Prérequis
Avant de lancer Certbot, vérifiez que :
- Vous avez un accès root ou sudo sur votre serveur Rocky Linux 9.
- Un nom de domaine pointe déjà vers l’IP publique du serveur (enregistrement DNS A, et AAAA si vous utilisez IPv6 — propagation vérifiée).
- Les ports 80 et 443 sont ouverts au niveau du pare-feu et chez votre hébergeur/fournisseur cloud si un pare-feu réseau existe en amont.
- Nginx ou Apache est déjà installé et sert votre domaine (sauf si vous comptez utiliser le mode standalone).
2. Installer Certbot sur Rocky Linux 9
Sur Rocky Linux 9, la méthode la plus simple passe par le dépôt EPEL, qui fournit Certbot et ses plugins directement en paquets dnf.
sudo dnf install -y epel-release
sudo dnf install -y certbot
Ajoutez le plugin correspondant à votre serveur web :
# Pour Nginx
sudo dnf install -y python3-certbot-nginx
# Pour Apache (httpd)
sudo dnf install -y python3-certbot-apache
Vérifiez l’installation :
certbot --version
3. Ouvrir les ports HTTP/HTTPS avec firewalld
Rocky Linux 9 utilise firewalld par défaut. Autorisez les services web :
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
La dernière commande doit afficher http et https dans la liste des services autorisés.
4. Obtenir un certificat
Remplacez votredomaine.fr par votre propre nom de domaine dans les commandes suivantes.
Avec Nginx (configuration automatique)
sudo certbot --nginx -d votredomaine.fr -d www.votredomaine.fr
Certbot modifie vos blocs server, ajoute les directives SSL, recharge Nginx et propose la redirection automatique HTTP → HTTPS.
Avec Apache (configuration automatique)
sudo certbot --apache -d votredomaine.fr -d www.votredomaine.fr
Certbot met à jour vos VirtualHosts, active le module mod_ssl si nécessaire, et recharge Apache.
Webroot (sans recharger le serveur web)
Utile pour l’intégration continue ou quand vous ne voulez pas que Certbot touche votre configuration :
sudo certbot certonly --webroot -w /var/www/votredomaine \
-d votredomaine.fr -d www.votredomaine.fr
Le répertoire indiqué doit servir publiquement /.well-known/acme-challenge/. Il faudra ensuite ajouter vous-même les directives SSL dans votre configuration.
Standalone (aucun serveur web actif pendant l’émission)
sudo systemctl stop nginx # ou httpd
sudo certbot certonly --standalone -d votredomaine.fr
sudo systemctl start nginx
Pratique pour une toute première émission sur un serveur fraîchement installé.
5. Certificat wildcard (défi DNS-01)
Un certificat wildcard (*.votredomaine.fr) exige obligatoirement un défi DNS-01 : Certbot doit prouver que vous contrôlez le domaine via un enregistrement TXT.
Méthode manuelle (universelle)
sudo certbot certonly --manual --preferred-challenges dns \
-d votredomaine.fr -d '*.votredomaine.fr'
Certbot vous demande de créer un enregistrement TXT _acme-challenge.votredomaine.fr. Attendez la propagation DNS avant de valider.
Méthode automatisée (exemple Cloudflare)
sudo dnf install -y python3-certbot-dns-cloudflare
echo "dns_cloudflare_api_token = VOTRE_TOKEN" | sudo tee /root/.cloudflare.ini
sudo chmod 600 /root/.cloudflare.ini
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /root/.cloudflare.ini \
-d votredomaine.fr -d '*.votredomaine.fr'
Cette méthode permet un renouvellement 100% automatique, même pour les wildcards.
6. Vérifier la configuration SSL
Extrait Nginx minimal et sécurisé
server {
listen 443 ssl http2;
server_name votredomaine.fr www.votredomaine.fr;
ssl_certificate /etc/letsencrypt/live/votredomaine.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/votredomaine.fr/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
root /var/www/votredomaine;
index index.html index.php;
}
server {
listen 80;
server_name votredomaine.fr www.votredomaine.fr;
return 301 https://$host$request_uri;
}
Extrait Apache minimal et sécurisé
<VirtualHost *:443>
ServerName votredomaine.fr
DocumentRoot /var/www/votredomaine
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/votredomaine.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/votredomaine.fr/privkey.pem
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</VirtualHost>
<VirtualHost *:80>
ServerName votredomaine.fr
Redirect permanent / https://votredomaine.fr/
</VirtualHost>
Rechargez après modification :
sudo systemctl reload nginx # ou
sudo systemctl reload httpd
Testez ensuite avec curl -I https://votredomaine.fr (vous devez obtenir un HTTP/2 200) ou via un scanner SSL en ligne pour viser une note A/A+.
7. Renouvellement automatique
Sur Rocky Linux 9, le paquet certbot d’EPEL installe un timer systemd qui vérifie le renouvellement deux fois par jour.
systemctl list-timers | grep certbot
sudo certbot renew --dry-run
Si votre configuration est particulière, ajoutez un hook de rechargement explicite :
sudo certbot renew --deploy-hook "systemctl reload nginx"
Surveillez la date d’expiration à tout moment :
sudo openssl x509 -enddate -noout -in /etc/letsencrypt/live/votredomaine.fr/cert.pem
8. Dépannage spécifique à Rocky Linux 9
- Le défi HTTP-01 échoue : vérifiez que le port 80 est bien ouvert dans firewalld (firewall-cmd –list-all) et qu’aucun reverse proxy en amont (Cloudflare, load balancer) ne bloque /.well-known/acme-challenge/.
- SELinux bloque Nginx/Apache : si le rechargement échoue après l’obtention du certificat alors que la config semble correcte, vérifiez le contexte SELinux des fichiers de certificat et les refus dans les journaux :
sudo ausearch -m avc -ts recent
sudo restorecon -Rv /etc/letsencrypt/ - httpd ne peut pas se connecter en HTTPS sortant (proxy inverse, appels API) : sudo setsebool -P httpd_can_network_connect 1
- Erreur de permissions sur les clés privées : les fichiers dans /etc/letsencrypt/live/ doivent rester la propriété de root, jamais ouverts en lecture globale.
- Contenu mixte après activation d’HTTPS : pensez à mettre à jour les URLs codées en dur (images, scripts, base de données) vers https://.
FAQ
Let’s Encrypt est-il fiable pour un usage en production ?
Oui. C’est une autorité de certification reconnue par tous les navigateurs, délivrant des certificats à validation de domaine (DV) avec la même sécurité cryptographique qu’un certificat DV payant.
Quelle est la différence entre les défis HTTP-01 et DNS-01 ?
HTTP-01 prouve le contrôle du domaine via un fichier servi sur le port 80 — simple pour un seul serveur. DNS-01 prouve le contrôle via un enregistrement TXT — obligatoire pour les certificats wildcard, et utile si le port 80 est inaccessible.
Certbot va-t-il casser ma configuration Nginx/Apache existante ?
Non : Certbot ne modifie que les blocs concernant le domaine demandé et crée une sauvegarde des fichiers modifiés dans /etc/letsencrypt/. Vous pouvez aussi utiliser certonly pour ne récupérer que le certificat, sans toucher à la configuration.
Dois-je désactiver SELinux pour que Let’s Encrypt fonctionne ?
Non, ce n’est jamais nécessaire. restorecon et les booléens SELinux ciblés (comme httpd_can_network_connect) suffisent dans l’immense majorité des cas.