Pour forcer l'usage de SSL pour l'accès à votre site, c'est-à-dire forcer l'accès via « https:// » plutôt que « http:// », il convient d'ajouter les lignes suivantes à votre fichier .htaccess
. Le code ci-dessous supprime aussi au passage le « www. » qui peut se glisser après « http:// ».
RewriteEngine on
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} ^www\.website\.com$ [NC]
RewriteRule ^(.*) https://website.com/$1 [QSA,L,R=301]
Le code a pour effet de réécrire toutes les adresses en ajoutant un « s » à « http:// » pour forcer l'usage de ce protocole.
On sait que cela a comme inconvénient de permettre initialement la connexion en HTTP (non sécurisée) pour lire le fichier .htaccess
et seulement ensuite rediriger vers la page en HTTPS. Lors de cette première connexion non sécurisée une interception, puis éventuellement redirection vers un site maquillé, est possible. C'est le cas à chaque fois que l'on se connecte au site sans « https:// » dans l'adresse. Pour cette raison, HSTS (HTTP Strict Transport Security) a été inventé. Cette option enregistre sur le navigateur client et pour une durée donnée la préférence d'accès en HTTPS à tel site et opère la réécriture directement au niveau du navigateur client. On a ainsi besoin de se connecter qu'une seule fois de manière non sécurisée pour lire le fichier .htaccess
. Cela limite les risques. HSTS se définit comme suit, dans le fichier .htaccess
.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
On peut même inscrire son site sur une liste blanche que les navigateurs ont en mémoire à l'installation et éviter absolument toute connexion non sécurisée.
Le risque, c'est que si le site en question n'a pas de certificat SSL, le perd, ou redirige vers un autre site sans certificat, le navigateur revoie un erreur. Et l'on ne pourra plus se connecter en HTTP au site car le navigateur a enregistré qu'il fallait toujours se connecter en HTTPS.
Changer votre .htaccess
n'aura pas d'effet, car l'information est stockée localement sur le navigateur de vos visiteurs. Cela, jusqu'à l'expiration du max-age
(en secondes) défini dans le .htaccess
comme ci-dessus. Le HSTS est donc assez dangereux si on y prend pas garde, surtout si vous le configurez pour une durée longue.
Pour info, vous pouvez effacer la mémoire de votre navigateur concernant les préférence HSTS de tel site. Sur Firefox, voir Historique > clic droit sur le site Oublier ce site.
Si vous avez configuré des redirections avec votre hébergement OVH, elles ne pourront pas se faire en HTTPS à ma connaissance. Elles pourront cependant bien mener en bout de chaîne à une page en HTTPS. Par exemple, http://page.domaine.co
peut rediriger vers https://domaine.com/pages/page
mais l'accès à https://page.domaine.com
vous renverra une erreur de certificat.
En effet, le serveur de redirection d'OVH par lequel on transit est différent du serveur prévu dans le certificat délivré pour votre site. Pour renvoyer vers une page en HTTPS, il faut opter pour une redirection visible.
Ainsi, si vous utilisez les redirections OVH, il ne faut pas utiliser HSTS.
Attention, des applications (CMS ou autre) que vous avez installé sur votre site, peuvent contenir des directives HSTS dans le .htaccess
de leur sous-dossier mais qui s'appliquent à l'ensemble du domaine. C'est le cas de Own/Next-cloud ou FileRun par exemple. Il faudra alors éditer le fichier .htaccess
en question et mettre un "#" devant la ligne configurant le HSTS pour le désactiver.