Pour passer un site web de http vers https il est important de ne pas se rater.
La méthode que je préfère est celle du htaccess, mais j'ai rencontré quelques soucis pour la mise en place. Si vous êtes aussi client YulPa cela devrait vous intéresser.
Pourquoi ?
L'architecture de l'hébergement conditionne les directives Apache à utiliser.
Dans mon cas j'avais appliqué une configuration que j'utilise depuis des années un peu partout, mais j'avais systématiquement l'erreur ERR_TOO_MANY_REDIRECTS avec un moteur basé sur chromium, sinon "la page n'est pas redirigée correctement" avec Firefox.
Avec un loadbalancing (YulPa)
Attention : cela concerne uniquement les anciennes offres d'hébergement 2016/2017, si vous êtes sur offre plus récente ce guide ne vous sera pas utile, utilisez les directives classiques (voir plus bas)/
YulPa utilise un méchanisme de répartition de charge (load balancers) avec un frontal qui oriente les pages web vers d'autres serveurs. Ceci afin de répartir au mieux les pics de charge, cette infrastructure est très fréquente chez les hébergeurs mutualisés.
Voici la directive qui fonctionne :
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
Le répartiteur de charge transmet la requête en interne, comme le fait un reverse proxy et du coup les en-têtes sont un peu différentes.
Ce qui ne fonctionne pas en loadbalancing
Voici ce qui me donnait une redirection infinie (loop redirect) :
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTPS} !=on </IfModule>
ou :
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTPS} =off </IfModule>
D'ailleurs la ligne contenant le "[OR]" est facultative voir inutile, mais c'est bien celle d'en dessous qui posait problème. Elle n'était jamais intérprétée et donc le https redirige vers https... sans fin.
Et voici la directive qui fonctionne avec et sans répartiteur de charge
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
Note 1 : il n'y a pas de "[OR]" qui lie les 2 conditions, c'est voulu. Ne l'ajoutez pas sinon c'est boucle de redirection (car l'une des deux sera toujours vraie puisque non reconnue).
Note 2 : oui c'est bien la bonne syntaxe "%{HTTPS} off" et non pas "%{HTTPS} =off"
Avec iWal
Si vous préférez ne pas mettre les mains là dedans il est possible de le faire en 2 clics chez YulPa dans le panel iWal.
Allez dans :
Publication web > Domaines web > <votre domaine> > Configuration SSL > Mode de publication
A vous de choisir l'option qui vous convient le mieux.
Quelques outils
Pour vérifier que votre redirection fonctionne bien je vous conseille le site redirect-checker.org qui permet de visualiser toutes les redirections successives.
Et si vous cherchez des directives pour augmenter le niveau de sécurité de votre site web : the ultimate .htaccess file, mais attention à ne pas trop surcharger votre fichier de directives, sous peine d'avoir des ralentissements ou pire des erreurs 500...
En espérant que ceci vous soit utile, nombreux sont les hébergeurs à utiliser des proxy / load balancers.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
2 commentaires
Bonjour,
Je vois que blogmotion n'a toujours pas migré en https !
Je suis sur Yulpa aussi, j'ai ajouté dans le htaccess ce que vous avez conseillé mais mon site n'est toujours pas sécurisé et je suis passée de 3 secondes d'ouverture de page à 18 secondes... pas acceptable du tout !
Peut être etes vous aussi passé par là et vous avez fait un retour arrière ?
Merci
@s3m: passer de HTTP vers HTTPS nécessite un travail en amont pour ne pas avoir de contenu mixte, c'est à cause de ceci que vous rencontrez des soucis sur votre site. Cherchez "http https contenu mixte" dans Google pour comprendre