Le titre de l’article est mensonger. Je ne vais pas détailler, la procédure pour installer Let’s Encrypt, car c’est très bien fait sur cette page :
https://www.human-geek.com/installer-lets-encrypt-sur-un-vps-ovh/
Rapide résumé (pour comprendre allez voir le tuto sur human-geek.com)
1 2 3 |
git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt ./letsencrypt-auto |
Et arrivé à ce point vous devriez avoir le choix du ou des domaines pour activer le https… oui mais pas chez moi, rien du tout, il me propose de les ajouter à la main et après ça plante !
PAS DE PANIQUE
Voici les 4 erreurs que j’ai rencontré en installant Let’s Encrypt:
1 . Le port 443 doit être libre
Si vous avez configuré votre accès SSH sur le port 443… et bien retour sur le port 22 obligatoire.
Le 443 doit être disponible sous peine de ne pas comprendre pourquoi le script bug.
2 . Let’s Encrypt ne trouve pas les noms de domaine
1 |
No host exists with servername |
Le virtual host d’Apache est en cause, même ma super config plante à ce stade.
Les régles à respecter pour que ça marche :
- Un seul nom de domaine par fichier de configuration /etc/apache2/sites-available/
- Pour voir votre nom de domaine proposé avec et sans le www il faut commencé la config ainsi :
123<VirtualHost *:80>ServerName nomdedomaine.comServerAlias www.nomdedomaine.com
Dans mon tuto sur la configuration d’un virtual host avec gestion automatique des sous domaines, j’ai besoin de cette ligne :
1ServerAlias *.nomdedomaine.com
Aucun soucis, les ServerAlias sont cumulables, donc :
1234<VirtualHost *:80>ServerName nomdedomaine.comServerAlias www.nomdedomaine.comServerAlias *.nomdedomaine.com
Vous pouvez maintenant relancer le script :
1 |
./letsencrypt-auto |
Et reprendre le tuto sur human-geek.com
En cas de pépins, revenez ici.
3 . Firefox m’affiche un avertissement concernant du contenu mixte et bloque certains éléments
Comme détaillé sur la page officielle : Le blocage du contenu mixte avec Firefox
Simple, il y a dans votre code source au moins un lien en http:// au lieu de https://
Une bibliothèque javascript importé depuis un serveur ou comme moi cette balise :
1 |
<base href="http://<?php echo $_SERVER['SERVER_NAME'];?>/" /> |
Balise qui réglé le problème d’arborescence factise de l’url rewriting.
Il faut tout simplement ajouter un s à la fin du http :
1 |
<base href="https://<?php echo $_SERVER['SERVER_NAME'];?>/" /> |
Et Firefox affichera votre page https sans soucis !
4 . C’est bien joli mon gars, mais ta super config de la mort ne fonctionne plus
Crotte, vous vous souvenez du tuto : VirtualHost et nom de domaines sur un VPS OVH, ben ça déconne à plein gaz maintenant !
La raison, Let’s Encrypt ajoute quelques lignes dans vos virtual host dans /etc/apache2/sites-available/
A la toute fin, juste avant </VirtualHost> , vous pourrez voir ceci :
1 2 3 4 5 |
RewriteCond %{SERVER_NAME} =nomdedomaine.com [OR] RewriteCond %{SERVER_NAME} =*.nomdedomaine.com [OR] RewriteCond %{SERVER_NAME} =www.nomdedomaine.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] </VirtualHost> |
Sauf que pour la peine nos règles de ré-écriture avant sont ignorées, il faut donc déplacer les lignes ci-dessus juste en dessous de RewriteEngine on, exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<VirtualHost *:80> ServerName nomdedomaine.com ServerAlias *.nomdedomaine.com ServerAlias www.nomdedomaine.com ServerAdmin webmaster@nomdedomaine.com DocumentRoot /var/www/nomdedomaine.com <Directory /var/www/nomdedomaine.com> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> RewriteEngine on # HTTPS Let's Encrypt RewriteCond %{SERVER_NAME} =nomdedomaine.com [OR] RewriteCond %{SERVER_NAME} =*.nomdedomaine.com [OR] RewriteCond %{SERVER_NAME} =www.nomdedomaine.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] # Domaine principal, redirection vers dossier /www/ RewriteCond %{HTTP_HOST} ^nomdedomaine\.com RewriteRule ^(.*) /www/$1 [L] # Sous-domaine(s), redirection vers les sous dossiers RewriteCond %{HTTP_HOST} ^([^\.]+)\.nomdedomaine\.com RewriteCond /var/www/nomdedomaine.com/%1 -d RewriteRule ^(.*) /%1/$1 [L] </VirtualHost> |