Le guide pour sécuriser son site avec HTTPS & SSL

Faut-il sécuriser son site ? Comment sécuriser un site internet ? Comment mettre HTTPS en vert. C'est quoi SSL et HTTPS ? Beaucoup de questions et pas de réponses faciles pour ceux ou celles qui n'ont pas les connaissances techniques. Dans ce guide, je vais répondre à toutes vos questions et vous expliquer le pourquoi du comment. 

Faut-il sécuriser son site internet avec HTTPS ?

La réponse courte est que oui, vous devriez.

CE QU'IL FAUT RETENIR
Sans HTTPS et SSL, il n' y a pas de confidentialité, donc n'importe qui peut voir ce que vous faites et dites. Il n' y a pas d'identification, donc vous n'avez aucune idée de qui répond. Et, finalement, il n' y a pas d'intégrité, parce que vous ne pouvez pas dire quand quelqu'un a manipulé ce que vous venez de télécharger, par exemple en injectant du code pour miner de la crypto-monnaie dans chaque page Web.

Bien que vous n'ayez pas besoin de l'avoir à moins que vous n'acceptiez des paiements, ou que vous soyez soumis aux lois sur la protection de la vie privée, vous devriez vraiment installer un certificat SSL. Il existe des certificats gratuits et payants ; plus détails ici.

La confiance et la crédibilité sont des facteurs décisifs pour le succès de votre site web ou blogue.

Pour les profanes, voici une analogie du chiffrement SSL qui me vient à l'esprit :

Voudriez-vous que votre appartement n’ait qu’une porte d’entrée sans serrure avec un vitrage simple et sans rideau pour cacher votre intérieur ? Seriez-vous rassurés ? Auriez-vous la conscience tranquille lorsque vous dormez dans votre chambre ou quand vous vous êtes à l’extérieur ?

Je ne pense pas.

Votre site Internet, blog ou site vitrine, peu importe, eux aussi, le valent bien. Vos visiteurs visitent votre création. Ils veulent être rassurés et savoir qu’ils naviguent sur un site chiffré.

Les éditeurs, webmestres (webmasters) ou bloggeurs sont les proprios de cet appart. Vous êtes dans l’obligation de faire en sorte que vos visiteurs se sentent en sécurité chez vous, que leurs données soient chiffrées de bout en bout et que l'intégrité des données échangées entre le serveur et vos utilisateurs n'ait pas été altérée.

Bref, prouvez à vos clients, lecteurs et lectrices que votre site est fiable, peu importe le but de votre site Internet ou blogue !

HTTPS vous donne également un coup de pouce SEO et vous aide à prévenir la surveillance de masse du Web par des gouvernements despotiques et autres agences gouvernementales (oui, la NSA vous dites ?).

Vous voulez des exemples ?

Qu'est-ce que SSL et HTTPS veulent dire ?

Nous avons tendance à parler de deux technologies connexes comme si elles étaient les mêmes.

Pourtant, elles sont différentes mais intimement liées :

Certificat SSL

Un certificat SSL est ce qui rend possible le transport sécurisé HTTPS. Le "S" dans HTTPS est synonyme de sécurité.

Le Secure Socket Layer ou SSL s'assure que les données qui circulent entre votre appareil (par exemple, votre iPhone dernier cri) et le serveur duquel vous vous connectez sont protégées contre toute lecture ou modification par votre fournisseur d’accès Internet (FAI) ou par des personnes mal intentionnées. HTTPS peut alors utiliser la connexion sécurisée le trafic.

Protocol SSL

Le SSL est la clé de cryptage qui décrypte le trafic sécurisé par HTTPS.

Lorsque nous disons qu'un « site utilise SSL », je veux dire qu'il a un certificat SSL correctement configuré au niveau du serveur ou de votre hébergement partagé et qu'il a été configuré pour accepter uniquement les connexions via HTTPS.

Bien entendu, si c’est votre cas, il faut faire en sorte que seule la connexion HTTPS soit accessible. Les trucs techniques sont [ajouter une ancre].

Oui mais mon site n'a pas de formulaires de connexion ?

Et alors ?

Je cite des commentaires lus sur un site français connu :

Techniquement, le HTTPS n'a absolument AUCUN intérêt pour un site vitrine, mais est indispensable dès qu'on passe par un espace / compte utilisateur.

Ou encore :

Autant, dès qu’il y a des données personnelles à gérer (même un simple utilisateur / mot de passe), c'est indispensable, autant pour du contenu vitrine, y a aucun risque de sécurité...

(pardonnez l’orthographe mais j’ai copié les commentaires originaux...) 

Hum, non.

Relisez l’intro puis retournez sur ces deux commentaires.

Moche hein ? 😑

Mais mon CMS est à mis à jour régulièrement !

Je parie ma meilleure bouteille « The Belgian Owl », un excellent Whisky belge, que votre site mouline sur WordPress, Drupal ou Joomla!, ou tout autre CMS « classique ».

Toutes ces solutions contiennent des formulaires de connexion, des zones non publiques pour l'administration (par exemple : /wp-admin), sans exception.²

Il existe beaucoup de mesures de sécurité en place mais elles sont basées sur des nonces et des cookies seulement. Les communications, elles, ne sont donc pas prises en compte. Et c'est là tout le problème...

En effet, sans le HTTPS, l’accès de votre site à la mise d’un article est transmise en clair : un pirate connecté sur le même réseau (WiFi publique ou du café du coin) peut donc lire les données qui y transitent ! Donc, ton mot de passe, les accès de tes clients, tes emails téléchargés dans Outlook 2016, tout y passe…

Quels sont les avantages du protocole HTTPS et SSL ?

Les avantages du SSL/TLS pour votre site ou blogue sont nombreux :

Rend votre site plus sécurisé

C'est l'avantage le plus évident du passage au HTTPS. Lorsque vous avez HTTPS sur votre site, vous garantissez que les informations transmises entre le client et le serveur ne peuvent être ni volées ni interceptées. Il s'agit essentiellement d'une sorte de preuve que les données du client ne seraient pas altérées sous quelque forme que ce soit.

Ce n’est pas seulement indispensable pour les sites qui ont besoin que les clients se connectent et acceptent les paiements par carte de crédit ou de débit mais pour les sites vitrines aussi.

Chiffrement

Ok, donc si quelqu'un réussit à l'intercepter (par exemple, lorsque vous vous connectez à un Wifi publique…), les données seraient complètement inutiles pour eux.

Au cas où vous vous demandez pourquoi, c'est parce qu'ils n'auraient évidemment pas la clé SSL pour les décrypter.

Authentification

Vous devez avoir entendu parler des attaques du type « Man in the Middle ».

Cependant, avec HTTPS, il est presque impossible pour quiconque de tromper vos clients et de leur faire croire qu'ils vous fournissent leurs renseignements personnels sur un faux site.

Grâce au HTTPS, les sites qui l'utilisent sont signés et tous les navigateurs Internet modernes le montrent très clairement :

En effet, ce type d'attaque est appelé hameçonnage (appelé également « phishing » en anglais) et dont le but est de vous pousser à révéler des informations personnelles comme des identifiants (des mots de passe ou des emails), des numéros de carte de crédit ou de compte bancaire.

Bon pour le référencement de votre site

Vous voulez certainement que votre site se classe plus haut dans les résultats des moteurs de recherche et SSL/TLS y contribue.

Avec votre site classé plus haut, vous auriez plus de clients, un trafic accru et une amélioration de votre chiffre d'affaires global. Il n'y a pas que nous qui disons cela - Google le dit lui-même et, ce, depuis 2014 !

Non, je veux dire : Quels sont les avantages pour moi ? Pourquoi devrais-je m'embêter ?

Pas encore convaincu du bienfait du combo SSL/HTTPS ?

Bien, voici ci-dessus la liste détaillée, qui ne fonctionne qu'avec des sites sécurisés, des technologies du Web que vous devriez très sérieusement considérer pour vos créations en ligne.

HTTPS et Référencement SEO

Annoncé pour la première fois en 2014 puis en 2016, Google a confirmé que le passage au HTTPS est devenu un critère de pertinence algorithmique donnant ainsi un petit boost aux sites sécurisés.

Un critère mineur, certes, mais tout est bon à prendre pour battre la concurrence, n'est-ce pas ?

Accelerated Mobile Pages (AMP)

Dévoilée en 2015, AMP (Accelerated Mobile Pages), et concurrente à Facebook Instant Page, est une technologie open source créée par Google dont le but est d'accélérer l'Internet sous la 2G et 3G (des réseaux plus lents que la 4G ou la future 5G). Apprenez-en plis avec la vidéo de présentation officielle.

PWA

Les applications Web progressives (PWA ou Progressive Web App) sont des applications Web qui sont des pages Web ou des sites Web ordinaires, mais qui peuvent apparaître à l'utilisateur comme des applications traditionnelles ou des applications mobiles natives. Le type d'application tente de combiner les fonctionnalités offertes par la plupart des navigateurs modernes avec les avantages d'une expérience mobile. Pour générer votre PWA, vous pouvez vous aider avec ce site : PWABuilder de Microsoft.

HSTS

HTTP Strict Transport Security (HSTS) est une amélioration de la sécurité opt-in spécifiée par une application Web grâce à l'utilisation d'un en-tête de réponse spécial. Une fois qu'un navigateur pris en charge reçoit cet en-tête, ce navigateur empêchera toute communication par HTTP vers le domaine spécifié et enverra toutes les communications par HTTPS. Une fois votre site correctement configuré, vous l'envoyé sur HSTS Preload.

Vitesse de chargement d’un site

Avoir un site qui charge rapidement est incroyablement important ! Il peut avoir un impact sur les conversions, le taux de rebond, le temps sur site, la convivialité, et même le référencement. 

Les technologies qui accélère le web comme le HTTP/2 et QUIC ne fonctionnent qu'avec HTTPS/SSL...

HTTP/2

Vous pouvez considérablement optimiser le temps de chargement de votre site Web en utilisant HTTP/2 qui ne fonctionne qu'avec HTTPS.

HTTP/2 (également connu sous le nom de HTTP/2.0) est la dernière version du Hypertext Transfer Protocol. Il est basé sur le protocole SPDY et a été spécialement développé par Google pour améliorer la vitesse et les performances du navigateur lors du chargement des éléments inhérents aux pages Web.

QUIC

QUIC est protocol réseau développé par Google depuis 2012. Le but de Google est de réduire la congestion du réseau grâce à des alrogrithmes dédiés et réduire la latence par rapport au plus classique TCP. Pour info, seul LiteSpeed Server offre ce protocol avec HTTP/2.

AMP, Notifications & PWA 

Ce qu'il faut garder à l'esprit lors de la migration vers HTTPS

Malheureusement, déplacer un site WordPress ou autres scripts non sécurisées vers HTTPS comporte quelques pièges. Ce n'est pas le tutoriel, mais je tiens à souligner quelques points à surveiller.

Il ne suffit pas de simplement configurer votre certificat SSL et de changer l'URL de votre site pour utiliser https://.

Vous devez vous assurer que votre serveur est configuré pour rediriger toutes les requêtes via HTTP vers l'URL équivalente HTTPS.

J'utilise Name Hero pour plusieurs raisons, l'une d'elles est simple : mon hébergement simplifie grandement la tâche grâce à un partenariat avec Cloudflare.

De nombreux navigateurs ne permettent pas aux images, CSS et fichiers JavaScript d'être servis via HTTP sur une page utilisant HTTPS. Lors de la migration, vous devez vous assurer que toutes les images de vos messages qui proviennent de votre site sont mises à jour pour utiliser la nouvelle URL sécurisée.

Assurez-vous que toutes les URL canoniques et les URLs hreflang (langue et/ou régionales) pointent également vers HTTPS.

Même si vous avez configuré une redirection côté serveur, il est préférable de remplacer les URL HTTP par des URL HTTPS. De cette manière, vous évitez les redirections qui se produiront à chaque fois car cela ralentirait considérablement le temps de chargement de votre page.

Vérifiez tous les plug-ins ou modules pour voir s'ils fonctionnent correctement après les mises à jour avec SSL.

Comment rediriger le traffic vers SSL/HTTPS ?

Pour vous assurer que votre page est distribuée exclusivement via HTTPS, vous devez configurer les redirections 301 côté serveur via le fichier. htaccess avec un hébergeur Linux/Appache ou LiteSpeed.

C'est simple.

Selon votre hébergeur : il suffit de copier le code correspondant ci-dessous dans votre fichier .htaccess qui se trouve à la base de votre site Internet (en général, public_html).

Attention ! Avant de commencer, lisez attentivement les conseils ci-dessous :

  1. Faites une sauvegarde avec cPanel ou du fichier .htaccess avant l'édition ; on ne sait jamais...
  2. Si vous n'êtes pas certain de ce que vous faites, ouvez un ticket de support technique chez votre hébergeur.
  3. Ne dupliquez pas RewriteEngine On
  4. Si les règles RewriteCond ou RewriteRule doivent immédiatement suivre un existant RewriteEngine OnDans tous les cas, cette règle doit être ajoutée pour que les redirections soient validées. 
  5. N'oubliez pas de changer votredomaine.fr par le vôtre ; par exemple : www.votredomaine.fr, votredomaine.fr ou sousdomaine.votredomaine.fr

Name Hero

Chez mon hosting favoris, NameHero.com, la manière que je recommande est d'activer Cloudflare pour votre domaine depuis cPanel et puis de choisir « Flexible » ou « Full ».

De cette manière, il n'y a pas besoin d'ajouter des codes ou autres ; c'est simple et plus rapide et vous profitez de tous les bénéfices de Cloudflare sur votre site Internet, incluant Cloudflare Railgun™ qui est un service premium.

Cloudflare Railgun™ coûte normalement $200 par mois mais est disponible gratuitement pour tous les plans partagés (Shared Hosting) avec Name Hero.

OVH

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R,L]

Godaddy

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

1&1

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.votredomaine\.fr$ [NC]
RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R=301,L]

Strato

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R,L]

123-REG

&Order deny,allow
Deny from all
Allow from env=SSL

InMotion Hosting

Activez votre certificat SSL gratuit depuis votre compte > Account Management Panel (AMP) > Manage Free SSL.

Puis ajoutez ces règles à votre .htaccess :

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R,L]

MochaHost

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R,L]

BlueHost

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://votredomaine.fr/$1 [R=301,L]

HostGator

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R=301,L]

Hetzner

RewriteEngine On 
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

A2 Hosting

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://votredomaine.fr/$1 [R]

namecheap

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^votredomaine\.fr$ [OR]
RewriteCond %{HTTP_HOST} ^www\.votredomaine\.fr$
RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R,L]

DreamHost

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Netlify

Netlify fonctionne un peu différemment : il va ignorer le .htaccess mais il va valider _redirect. Bien entendu, modifiez la votredomaine.fr par le vôtre :

http://votredomaine.fr/* https://votredomaine.fr:splat 301​!

SiteGround

Dans le cas de SiteGround, SSL est fourni par Cloudflare. Vous devez le configurer suivant cet ordre :

  1. Connectez-vous à cPanel.
  2. Cliquez sur Cloudflare.
  3. Puis sur Settings.
  4. Et, finalement, sélectionnez « Full » ou « Full Strict ».

Robots.txt

Si vous avez correctement redirigé vos URLs, vous devez vous assurer que dans le fichier robots.txt qu'elles sont aussi mise à jour.

Google Analytics et Google Tag Manager

Si vous utilisez un outil d'analyse tel que Google Analytics, vous devez vous assurer que vous spécifiez HTTPS comme URL par défaut de votre site Web.

Google Search Console et Bing Webmaster Tools

Même s'il semble s'agir que d'un simple changement de protocole entre HTTP et HTTPS, les moteurs de recherche comme Google et Bing considèrent les adresses non sécurisées HTTP et les adresses sécurisées HTTPS comme des URL différentes ; autrement dit, comme deux versions différentes de votre site. Du coup, il faudra donc ajouter les nouvelles adresses (incluant le sous-domaine www à chaque version) à Google Search Console et Bing Webmaster Tools pour ne citer qu'eux. 

Voici ce que vous devriez obtenir pour votre site Web :

Comment obtenir un certificat SSL gratuit ?

Il n'a jamais été aussi facile d'obtenir un certificat SSL. De nombreux hôtes fournissent un moyen simple d'utiliser le service gratuit Let’s Encrypt pour configurer un certificat SSL GRATUIT. Let’s Encrypt est parfait pour un blog, mais vous voudrez un certificat SSL avec garantie pour un site d'entreprise. Pour moins de 10 $, vous pouvez bénéficier d'une couverture abondante. Plus de détails ci-dessous :

  • Let’s Encrypt
  • AutoSSL / cPanel
  • Cloudflare avec Universal SSL
  • Name Hero

Certificat SSL chez OVH

OVH offre depuis juillet 2016, un certificat généré par le Internet Security Research Group (ISRG) gratuit. Pour l'activer, il suffit d'avoir un hébérgement Web puis de se rendre dans « Informations Générales » et activer le service comme dans la capture d'écran présentée ci-dessous :

Blogger

Sur la plateforme de blog Blogger (Google), il suffit de se rendre dans les Settings > HTTPS et d'activer « HTTPS Availability » à « Yes ». A partir de là, le certificat doit être généré. Cette opération peut durer plusieurs minutes.

Conclusion

Avoir le SSL/TLS ou le HTTPS activés sur votre site statique, blogue ou site vitrine n'a pas pour but de protéger le propriétaire du site Internet mais l'utilisateur ou votre client !