Le cadenas qui apparaît à côté de l'adresse d'un site signifie que la connexion est chiffrée et que le site est bien celui qu'il prétend être. Sans lui, les navigateurs avertissent « site non sécurisé », Google vous classe moins bien et les formulaires circulent en clair. Il y a des années, un certificat coûtait de l'argent et de la paperasse ; aujourd'hui, Let's Encrypt les donne gratuitement et ils se renouvellent tout seuls.
Sur une machine Lightsail, il y a deux situations. Si vous l'avez créée depuis un modèle d'application (WordPress, Joomla, LAMP...), c'est une image Bitnami et elle contient un outil qui fait tout avec quelques questions. Si c'est un Linux « nu » (Ubuntu, Debian, Amazon Linux) où vous avez installé vous-même le serveur web, vous utiliserez Certbot, qui est simple aussi. Le guide couvre les deux cas.
Avant de commencer : ce que signifie chaque chose
- HTTPS et certificat
- HTTPS est la version sécurisée de HTTP, la façon dont le navigateur parle à votre site. Pour l'utiliser, le site a besoin d'un certificat : un fichier qui prouve que le domaine est à vous et permet de chiffrer la connexion.
- Let's Encrypt
- Une organisation à but non lucratif qui émet des certificats gratuits. Ils durent 90 jours et se renouvellent automatiquement grâce à un programme.
- Certbot
- Le programme le plus utilisé pour demander et installer des certificats Let's Encrypt sur un serveur Linux.
- Bitnami
- L'entreprise qui prépare les modèles d'applications de Lightsail (WordPress, etc.). Ses machines contiennent un outil maison, bncert-tool, pour le certificat.
- Apache et Nginx
- Les deux serveurs web les plus courants : le programme dans la machine qui livre les pages au navigateur. Le certificat s'installe dedans.
- Port 443
- La « porte » par laquelle entre le trafic HTTPS. Le pare-feu de Lightsail doit l'avoir ouverte.
- SSH / terminal du navigateur
- La façon de donner des ordres à la machine en tapant des commandes. Dans Lightsail, vous pouvez l'ouvrir avec un bouton dans la console, sans rien installer.
- Enregistrement A
- L'entrée du DNS qui fait pointer votre domaine vers l'IP de la machine. Let's Encrypt la vérifie avant de délivrer le certificat.
Pas à pas
Vérifiez le domaine et le pare-feu
Deux conditions sans lesquelles rien ne fonctionnera. D'abord, le domaine doit déjà pointer vers l'IP de la machine (et il vaut mieux que ce soit une IP statique) : tapez le domaine dans le navigateur et votre site doit se charger, même sans cadenas. Ensuite, dans Lightsail, onglet Mise en réseau de la machine, le pare-feu doit avoir HTTP (80) et HTTPS (443) ouverts. Le 443 n'est pas ouvert par défaut : ajoutez-le s'il manque.
Ouvrez le terminal de la machine
Dans la console Lightsail, cliquez sur le bouton Se connecter via SSH de la machine (l'icône de terminal orange). Une fenêtre noire s'ouvre dans le navigateur, où vous taperez les commandes des étapes suivantes. Pas besoin d'installer le moindre programme sur votre ordinateur.
Si votre machine est Bitnami : utilisez son outil
Tapez :
sudo /opt/bitnami/bncert-toolIl vous demandera les domaines (tapez
midominio.com www.midominio.com), si vous voulez rediriger HTTP vers HTTPS (dites oui) et si vous voulez que www redirige vers le domaine sans www ou l'inverse (choisissez-en un). À la fin, il demande un e-mail pour les avis de Let's Encrypt et que vous acceptiez ses conditions. Il redémarre les services pour vous. Quand il a terminé, le certificat est en place et le renouvellement programmé. Passez à l'étape 5.Si votre machine est un Linux normal : utilisez Certbot
Sur Ubuntu ou Debian avec Apache :
sudo apt update sudo apt install -y certbot python3-certbot-apache sudo certbot --apache -d midominio.com -d www.midominio.comAvec Nginx, remplacez
python3-certbot-apacheparpython3-certbot-nginxet--apachepar--nginx. Certbot vous demande un e-mail, d'accepter les conditions et si vous voulez rediriger tout le trafic vers HTTPS (dites oui). Il modifie lui-même la configuration du serveur web et la recharge. Sur Amazon Linux, les noms des paquets changent ; la documentation de Certbot donne les instructions exactes pour chaque système.Vérifiez le cadenas
Ouvrez
https://midominio.comdans le navigateur : le cadenas doit apparaître et, en cliquant dessus, un certificat émis par Let's Encrypt (il apparaît comme « R3 », « R10 » ou un autre nom court). Testez aussi la version sans https : elle doit rediriger toute seule vers la version sécurisée. Si vous utilisez WordPress, vérifiez dans Réglages, Général que les deux adresses commencent par https.Confirmez qu'il se renouvellera tout seul
Les certificats Let's Encrypt expirent au bout de 90 jours, mais bncert-tool comme Certbot laissent le renouvellement automatique programmé. Pour être tranquille, dans le terminal :
sudo certbot renew --dry-run(Sur Bitnami, l'équivalent est de vérifier que la tâche existe dans
sudo crontab -l.) Si l'essai se termine sans erreur, vous n'aurez plus à y toucher. Let's Encrypt vous enverra un e-mail si un jour le renouvellement échoue.
Ce qui peut mal tourner
Il dit qu'il ne peut pas vérifier le domaine
Soit le domaine ne pointe pas encore vers cette machine (attendez que le DNS se propage), soit le port 80 est fermé dans le pare-feu de Lightsail. Let's Encrypt a besoin d'atteindre votre site par le port 80 pour vérifier qu'il est à vous.
Il y a un cadenas mais le navigateur avertit de « contenu mixte »
La page charge des images ou des scripts avec des adresses http://. Dans WordPress, passez les adresses du site en https dans Réglages et, si nécessaire, utilisez un plugin qui réécrit les anciennes URL. Sur un site fait à la main, corrigez les liens.
Ça marche sans www mais pas avec www (ou l'inverse)
Il manque un des deux noms dans le certificat ou dans le DNS. Relancez la commande en incluant les deux avec -d, et vérifiez que www a son enregistrement dans le DNS.
Je n'ai plus accès après avoir touché au pare-feu
Le pare-feu de Lightsail se répare depuis la console, pas depuis la machine. Revenez à l'onglet Mise en réseau et vérifiez les règles. Le terminal du navigateur fonctionne toujours.
Dans Simplio
Dans Simplio, vous pouvez lancer l'installation du certificat Let's Encrypt sur une machine Lightsail depuis le catalogue de scripts, en saisissant seulement le domaine : Simplio se connecte avec la clé temporaire fournie par AWS, exécute les étapes et vous renvoie le résultat, sans rien laisser d'installé. Et il vous prévient par e-mail si un certificat est sur le point d'expirer sans se renouveler.
La même chose, dans AWS et dans Simplio
| Dans la console AWS | Dans Simplio | |
|---|---|---|
| Mettre le certificat | Ouvrir le port 443, terminal, bncert-tool ou Certbot, répondre aux questions : 5 étapes, 20 minutes et un terminal | Script Let's Encrypt du catalogue : saisir le domaine et cliquer, 2 minutes |
| Si le renouvellement échoue | E-mail de Let's Encrypt à la personne qui l'a configuré, si elle est encore dans l'entreprise | Alerte par e-mail de certificat sur le point d'expirer |
| Plusieurs sites | Répéter sur chaque machine | Le même script sur chaque machine, depuis la même liste |