SSL Let's Encrypt gratuit pour Apache sur AlmaLinux 9

3 min
Hébergement VPS/VDS

Les navigateurs et les moteurs de recherche attendent du HTTPS, et Let's Encrypt fournit des certificats gratuits. Sur un VPS Linux Infrawire sous AlmaLinux 9, Certbot peut obtenir le certificat, modifier la configuration d'Apache et le renouveler seul. Les mêmes étapes valent pour Rocky Linux 9.

📋 Prérequis

  • Un VPS AlmaLinux 9 avec accès root ou sudo (IP et mot de passe dans votre espace client).
  • Un nom de domaine, example.com, dont l'enregistrement A (et AAAA pour l'IPv6) pointe vers VPS_IP. Attendez d'abord la propagation DNS.
  • Apache (httpd) qui sert le site en HTTP sur le port 80.

1. Installer Apache et ouvrir le pare-feu

Si Apache n'est pas encore installé, installez-le et démarrez-le. Ouvrez ensuite HTTP et HTTPS dans firewalld ; le port 80 est indispensable à la validation Let's Encrypt.

Bash
dnf install -y httpd systemctl enable --now httpd firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload firewall-cmd --list-services

2. Créer un hôte virtuel pour votre domaine

Certbot cherche un ServerName correspondant à votre domaine : créez donc un hôte virtuel dédié.

Bash
mkdir -p /var/www/example.com/public_html echo "Hello" > /var/www/example.com/public_html/index.html

Créez /etc/httpd/conf.d/example.com.conf :

Apache
1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5</VirtualHost>

Vérifiez la syntaxe puis rechargez :

Bash
apachectl configtest systemctl reload httpd

3. Installer Certbot et mod_ssl

Certbot vient du dépôt EPEL. mod_ssl fournit le module TLS d'Apache et un certificat par défaut dont httpd a besoin pour écouter sur le port 443.

Bash
dnf install -y epel-release dnf install -y certbot python3-certbot-apache mod_ssl

4. Demander le certificat

Lancez Certbot avec le plugin Apache. Il valide le domaine en HTTP, écrit un nouvel hôte virtuel *-le-ssl.conf et peut ajouter la redirection HTTP vers HTTPS.

Bash
certbot --apache -d example.com -d www.example.com

Saisissez une vraie adresse e-mail (utilisée pour les alertes d'expiration), acceptez les conditions et choisissez la redirection quand on vous le demande. Chaque nom passé avec -d doit pointer vers ce serveur, sinon la validation échoue.

Si SELinux est en mode enforcing (par défaut), rien de particulier n'est requis pour une installation standard. Ne le désactivez pas pour contourner une erreur.

5. Vérifier le renouvellement automatique

Les certificats Let's Encrypt durent 90 jours. Sur AlmaLinux 9, le paquet installe un timer systemd qui s'exécute deux fois par jour et ne renouvelle que les certificats proches de l'expiration.

Bash
systemctl list-timers | grep certbot systemctl status certbot-renew.timer

Si le timer n'apparaît pas, activez-le :

Bash
systemctl enable --now certbot-renew.timer

Simulez un renouvellement sans toucher au vrai certificat :

Bash
certbot renew --dry-run

La dernière ligne doit indiquer que tous les renouvellements simulés ont réussi. Apache est rechargé automatiquement après un vrai renouvellement.

Vérification

Bash
certbot certificates curl -I https://example.com curl -I http://example.com

La première commande liste les domaines et la date d'expiration. La requête HTTPS doit renvoyer 200 et la requête HTTP doit répondre par une 301 vers l'adresse HTTPS. Dans un navigateur, le cadenas doit montrer un certificat valide émis par Let's Encrypt. Pour voir toute la chaîne, lancez openssl s_client -connect example.com:443 -servername example.com.

Dépannage

  • Échec du challenge ou délai dépassé pendant la validation : le DNS ne pointe pas encore vers le serveur ou le port 80 est bloqué. Vérifiez dig +short example.com, firewall-cmd --list-services et tout pare-feu placé devant le VPS.
  • Certbot ne trouve pas d'hôte virtuel correspondant : le ServerName ou ServerAlias dans /etc/httpd/conf.d/ ne correspond pas au domaine passé. Corrigez-le, lancez apachectl configtest, puis réessayez. Vous pouvez aussi utiliser certbot certonly --apache et configurer les chemins vous-même.
  • Trop de certificats ou de validations échouées (limite de débit) : Let's Encrypt limite les tentatives répétées. Testez d'abord avec certbot --apache --dry-run et attendez avant de réessayer.
  • Site inaccessible sur le port 443 après l'installation : HTTPS n'est pas ouvert dans firewalld ou httpd n'a pas été rechargé. Lancez firewall-cmd --permanent --add-service=https, firewall-cmd --reload et systemctl restart httpd.

🔐 Votre site Apache sur AlmaLinux 9 sert désormais du HTTPS et renouvelle son certificat tout seul.

Restez à jour avec les dernières offres, réductions et promotions spéciales.

Voir les promotions

Nous utilisons des cookies

Nous utilisons des cookies analytiques pour améliorer votre expérience sur notre site. Aucune donnée n'est revendue à des tiers. En savoir plus dans notre politique de confidentialité.