Blog

Transformation digitale, usages et outils Web

Sécurisez votre site Web en HTTPS

Sécurisez votre site Web en HTTPS
Publié le vendredi 3 février 2017, par Sébastien Rufer dans la catégorie Guides

Depuis déjà plusieurs années, la sécurité des données personnelles est une vraie priorité pour la plupart des acteurs et usagers de l'Internet. Les événements récents (terrorisme, piratage d'un état sur un autre, vol de données, piratage d'objets connecté, etc.) ont accéléré la prise de conscience des internautes sur ce sujet sensible et entraîne des évolutions importantes pour mieux signaler les sites qui ne sont pas suffisamment sécurisés.

Il existe évidemment de très nombreux moyens de sécuriser un site Web. Par exemple, il est possible d'utiliser des pare-feux matériels ou logiciels (firewall en anglais), des systèmes d'exploitation sécurisés, des logiciels de contrôles anti-virus, etc. Du côté des visiteurs d'un site Internet, c'est un peu la même chose: la sécurité est assurée par le système d'exploitation (Windows ou Mac Os), des pare-feux logiciels ou des anti-virus. Malheureusement, malgré toutes les précautions possibles et les appels à la prudence, il subsiste un gros point, sur lequel l'usager et le fournisseur du site Web ne peuvent pas maîtriser : celui de la liaison entre le site Web et l'internaute, via le réseau Internet.

À qui s'adresse cet article

Il s'agit d'un long article qui traite de la sécurisation d'un site Web par la mise en place du HTTPS. Si votre site est déjà en HTTPS, je ne suis pas certain que vous deviez lire la suite ;-) L'article est découpé en deux parties:

  1. Présentation du HTTPS : raison d'être, fonctionnement, intérêt. Cette section est plutôt destinée aux débutants qui s'interrogent. Les aspects techniques sont très simplifiés.
  2. Comment migrer son site HTTP en HTTPS. Cette section est destinée à un public plus à l'aise avec les techniques Web et qui pourra mettre les mains dans le cambouis numérique.

C'est quoi le HTTPS ?

Je ne vais pas rentrer dans les détails techniques du réseau Internet, mais il est important de comprendre son principe. Lorsqu'un visiteur consulte une page de votre site Internet, c'est un peu comme si une discussion démarrait entre le serveur qui héberge votre site Web et l'ordinateur de votre visiteur.

Les contenus de cette conversation numérique sont très souvent sans intérêt pour les humains que nous sommes. Mais dans certains cas, les acteurs de cet échange peuvent communiquer des données sensibles (numéro de carte bancaire, numéro de sécurité sociale, e-mail, numéro de téléphone, mot de passe, etc.).

Un internaute consulte un site Web

Par défaut, ce "tuyau" de communication peut facilement être écouté. Et il est ainsi possible de collecter ces informations sensées être confidentielles. C'est un peu comme si la consultation avec votre médecin avait lieu dans la salle d'attente : cela manque un peu d'intimité ! Mais il est aussi possible de modifier la communication pour obtenir des informations ou vous rediriger vers des sites plus ou moins dangereux.

Commençons par le HTTP

Le "tuyau" de communication que j'évoque ici est en fait un protocole réseau qui se nomme HTTP. Il défini, en quelque sorte, le vocabulaire et la grammaire qui vont être utilisés pour communiquer. Il est l'élément fondateur des communications sur le Web. Ce protocole est né en 1991 avec la version HTTP/0.9. Aujourd'hui nous en sommes à la version HTTP/2.0.

Principe de fonctionnement d'un message envoyé via HTTP

Sécurisation par HTTPS

Ce protocole ne définit aucune protection contre l'utilisation frauduleuse du lien entre l'internaute et le site qu'il visite. C'est ainsi qu'est né le HTTPS (S pour Sécurisé) en 1994. Il s'agit de combiner deux protocoles: le HTTP et le SSL ou le TSL. Ces protocoles permettent de crypter (coder pour rendre incompréhensible) la discussion entre l'internaute et le site Web qu'il visite.

Principe de fonctionnement d'un message sécurisé, envoyé via HTTPS

Les 3 bénéfices du HTTPS

  1. Confidentialité : protéger les communications entre deux parties sur Internet. C'est encore plus vrai lors d'un accès Internet public, comme les point d'accès Wi-Fi de certaines villes ou certaines enseignes.
  2. Authentification : garantir le nom de domaine. monsitepirate.com ne peut pas se faire passer pour mabanque.com. Avec certains certificats, il est même possible d'être certain que mabanque.com appartient bien à "Ma Banque".
  3. Intégrité : assurer que l'information émise sera bien celle qui sera reçue, sans aucune modification, ni remplacement.

Est-ce vraiment nécessaire pour mon site ?

Comme vous l'avez compris le HTTPS permet de garantir la confidentialité des échanges entre votre site et votre visiteur.

Nous pouvons distinguer deux types de site Internet:

  1. ceux qui proposent des informations à lire (cas d'un site vitrine ou d'un journal en ligne par exemple)
  2. ceux qui proposent une interaction avec le site et plus particulièrement ceux qui utilisent une authentification de type identifiant et mot de passe (forum, commentaires, formulaire, intranet, extranet, etc.)

On pourrait donc simplifier en disant que seuls les sites vitrine peuvent rester en HTTP et tous les autres doivent être en HTTPS. Ce n'est pas si simple.

Dans la plupart des cas, pour gérer un site vitrine, le webmaster utilise un outil qui nécessite de se connecter avec un identifiant et un mot de passe. Si l'accès à cet outil n'est pas disponible en HTTPS, le webmaster prend un risque certain.

Par ailleurs, même un site vitrine propose un formulaire de prise de contact, sur lequel le visiteur va renseigner son e-mail, ou des coordonnées. En remplissant ce formulaire de contact sans HTTPS, l'internaute prend le risque de dévoiler ses informations.

Les navigateurs Internet (comme Chrome ou Firefox) sont de plus en plus sévères dans le marquage des sites non sécurisé. D'ici peu vos clients verront votre site HTTP avec cette mention dans le navigateur:

Alerte Chrome pour les sites Web en HTTP

Enfin, le HTTPS apporte confiance et gage de sécurité auprès de vos visiteurs. Il se peut même que le passage au HTTPS améliore le référencement naturel de votre site par Google. Je préconise ainsi d'utiliser le HTTPS sur tous les types de site.

Vous êtes convaincus ? Alors allons-y. Dans la suite de cet article, je vais passer en revue les différentes étapes et les précautions à prendre pour passer votre site Web du HTTP au HTTPS.

Configurer votre hébergement

Commençons donc par le début. Il faut que le serveur qui héberge votre site soit capable de crypter et décrypter la communication avec vos visiteurs. Il va donc falloir vérifier ce que propose votre hébergeur. Il y a encore quelques années, les hébergeurs ne proposaient pas de solution simple, mais ce n'est plus le cas aujourd'hui.

OVH

Toutes les offres (même les offres mutualisées) de cet hébergeur disposent de l'option HTTPS. Pour l'activer, il convient de passer par le Manager, de sélectionner l'hébergement concerné et de cocher la case SSL.

Activer le SSL sur votre hébergement OVH

1&1

Pour cet hébergeur aussi, les offres récentes proposent un certificat SSL permettant de passer votre site Web en HTTPS, depuis votre centre de contrôle. Ils mettent d'ailleurs à disposition un document très complet sur les subtilités du HTTPS et plus particulièrement du rôle des certificats SSL.

Gandi

Chez Gandi, il s'agit d'un service complémentaire à souscrire et à associer à vos hébergements.

Autres hébergeurs

Il existe de nombreux autres hébergeurs et la plupart d'entre eux proposent des solutions simples pour configurer le serveur en HTTPS. Rapprochez-vous de leurs aides en ligne ou prenez contact avec leur support téléphonique.

Si c'est votre prestataire (freelance ou agence) qui gère l'hébergement de votre site, contactez-les pour leur demander d'activer le HTTPS sur votre hébergement.

Vérifier votre configuration HTTPS

Avant de continuer, assurez-vous que votre configuration HTTPS est bien en place et conforme au protocole (validité du certificat, failles, etc.). Pour cela il existe de nombreux services en lignes qui vous permettent de tester. Il suffit de renseigner votre adresse. Par exemple avec le service Qualys SSL Labs qui propose un diagnostic très complet.

Résultat du diagnostic SSL fourni par Qualys

 

Préparer votre site Web

Votre hébergement est maintenant configuré pour distribuer les pages de votre site en HTTPS. Il va maintenant falloir agir sur votre site Web pour qu'il soit prêt et que cette transition se passe sans douleur. Le passage au HTTPS ne comporte pas vraiment de risque, mais il convient d'être prudent pour ne pas perdre les bénéfices acquis sur votre référencement naturel et sur l'accessibilité de votre site Internet.

Paramétrer le CMS

Si vous utilisez un CMS (outil de gestion de contenu), il y a de fortes chances que vous puissiez le paramétrer pour qu'il supporte correctement le HTTPS. La plupart du temps il s'agit simplement de changer l'URL de référence du site en replaçant "http://" par "https://".

Exemple de remplacement d'URL http vers https

Dans d'autres cas, il faut aussi activer une option du CMS qui permet de prendre en compte le HTTPS dans la gestion des URL des pages.

Exemple d'activation de l'option SSL

Certains CMS ne disposent pas d'interface en back-office pour agir sur ce paramétrage mais proposent de modifier des fichiers de configuration sur le serveur.

Si votre site n'est pas géré par un CMS et qu'il s'agit simplement de pages HTML "statiques", alors le paramétrage n'est pas nécessaire.

Vérifier les ressources de votre thème

Pour afficher vos contenus sur des pages Web, votre site utilise un thème (on utilise aussi le mot gabarit ou template en anglais). Le rôle du thème est d'afficher vos contenus avec la charte graphique définie pour votre site Web. Il peut s'agir d'un thème acheté sur une boutique dédiée (TemplateMonster ou Envato Market) ou créé de toute pièce par celui qui a réalisé votre site Web.

En dehors de vos contenus, ce thème est chargé d'afficher votre logo, le(s) menu(s) de navigation, des images d'habillage de la page (un fond d'écran par exemple), scripts, polices de caractères, feuilles de style, etc. Il s'agit des ressources du thème. Il faut donc s'assurer que toutes ces ressources sont servies par le protocole HTTPS.

Par exemple si votre thème affiche un carrousel sur la page d'accueil, il y a de fortes chances que celui-ci utilise un fichier javascript. Ce fichier peut être hébergé sur le même serveur que votre site (www.monsite.fr/carrousel.js) ou sur un serveur distant (www.unautresite.com/super-carrousel.js). Dans ces deux cas, il faut vérifier qu'ils sont bien accessibles via le HTTPS. Par exemple :

<script type='text/javascript' src='/carrousel.js'></script>
<script type='text/javascript' src='https://www.monsite.fr/carrousel.js'></script>

Cette vérification doit aussi être faite sur les feuilles de styles, les polices de caractères, etc. Je vous encourage à automatiser cette étape en recherchant dans tous les fichiers du thème le terme "http://". La plupart des éditeurs dédiés au développement incluent cette fonction de recherche multi-fichiers : c'est le cas par exemple du logiciel Atom.

S'il subsite des liens qui ne sont pas à jour, vous risquez d'avoir des erreurs d'affichage ou une information du navigateur signalant qu'un des éléments de la page n'est pas sécurisé. Voici par exemple le message qui apparaît sur la console de développement de Google Chrome:

Erreur de ressource non sécurisée

Vous pourrez trouver tous les détails de ce qu'on appelle les contenus mixtes sur un article du Journal du Net.

Contrôler les liens internes

Le CMS est maintenant capable de gérer un accès au back-office en HTTPS et génère les adresse des différentes pages sur la base du HTTPS. Malheureusement, vos contenus contiennent souvent des liens complets, qui incluent le "http://" (du type http://monsite.com/ma-super-page.html ou http://monsite.com/mon-image-canon.jpg).

Si c'est le cas, il est nécessaire de parcourir l'ensemble des contenus pour aller remplacer tous ces liens "http://..." par "https://...". Ah oui quand même ! C'est du travail ! Heureusement, l'informatique permet souvent des petits miracles ;-) En effet, vos contenus sont stockés dans une base de données ou sur le disque dur du serveur. Il est donc possible d'automatiser ce travail.

Sur WordPress par exemple, il existe un petit script très pratique à installer à la racine de votre site qui se charge d'effectuer ce remplacement. Vous pouvez aussi utiliser des modules tel que "Search and replace".

Si vous ne disposez pas de WordPress, vérifier qu'il n'existe pas de module équivalent. Sinon il faut créer un script SQL sur le principe suivant :

update MA_TABLE set MON_CHAMP = replace(MON_CHAMP, ‘http://monsite.fr’, ‘https://monsite.fr’);

Si ce langage ne vous parle pas du tout, je vous encourage à prendre contact avec un développeur Web qui pourra vous accompagner dans cette démarche.

Pour être certain de ne pas en avoir oublié, vous pouvez utiliser un crawler ou un aspirateur de sites comme HTTRack. Ces outils font un inventaire de vos pages et identifient l'ensemble des liens. Vous pourrez ainsi repérer très rapidement si un lien de votre site n'est pas en HTTPS. 

Rediriger le HTTP vers HTTPS

Vous y êtes enfin, votre site fonctionne intégralement en HTTPS. Bravo ! Du côté du site il ne reste donc plus qu'à rediriger l'ensemble des adresses existantes en HTTP vers leur équivalent en HTTPS. Pour cela vous allez mettre en place des redirections. Il existe des différences pour configurer ces redirections, en fonction du serveur qui héberge votre site. Je prends ici pour exemple le cas d'un serveur Apache avec l'utilisation d'un fichier .htaccess à la racine de votre site Internet.

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

Avec cette redirection, tous les visiteurs qui demandent la page "http://monsite.fr" seront automatiquement dirigés vers "https://monsite.fr". De même pour les pages du site : "http://monsite.fr/ma-page" est envoyée vers "https://monsite.fr/ma-page". Ainsi les visiteurs, qui ont dans leurs favoris une des pages de votre site, sont dirigés automatiquement vers la bonne adresse sécurisées. Il en va de même pour les sites Web qui font des liens vers les pages de votre site.

Réseaux sociaux et outils

Et non, ce n'est pas encore tout à fait terminé. Avec votre site vous avez probablement des services associés. Une page Facebook ou LinkedIn, un compte Twitter ou Google My Business, etc. sur lesquels figurent votre adresse Web. Vous allez devoir modifier les informations que vous avez fournis à ces services pour leur communiquer votre nouvelle adresse en HTTPS.

Enfin, et certainement le plus important, vous disposez d'un outil de suivi des statistiques de fréquentation du site, comme Google Analytics. Il est aussi possible que vous ayez déjà créé un compte dans la Search Console de Google (anciennement Google Webmaster Tools). Si ce n'est pas le cas, il est encore temps de le faire ;-)

Google Analytics

Les choses sont très simples avec Google Analytics. Il s'agit de la configuration de la propriété de votre site. Sélectionnez "https://" au lieu de "http://" dans le paramètre "URL par déafaut".

Paramétrage HTTPS sur Google Analytics

Ainsi vous conservez votre historique statistique.

Google Search console

Du côté de cet outil, Google est très clair : il considère qu'un site http:// est différent du même site en https://. Il ne faut donc pas modifier la propriété que vous aviez créée pour le site en HTTP, mais créer une nouvelle propriété.

Ajouter nouvelle propriété pour site en HTTPS

Google considère ce changement comme un déplacement de site avec changement d'URL. Il peut y avoir temporairement un impact sur les chiffres fournis par la Search Console mais qui est sans pénalisation de votre référencement.

Check-list

Je vous propose un résumé de ce que vous venez de lire, sous forme d'une liste de contrôle:

Configuration du HTTPS sur mon hébergement (certificat SSL valide)
Configuration du CMS de mon site
Modification du thème de mon site (recherche sur tous les fichiers du thème de l'expression "http://")
Modification des liens présents sur mes contenus (http://monsite.fr vers https://monsite.fr)
Redirection permanente des pages "http://" vers "https://"
Mise à jour de mes profils de réseaux sociaux et services annexes
Mise à jour de la configuration Google Analytics
Création d'une nouvelle propriété dans la Search Console de Google

Pour aller plus loin

Pour des besoins de vulgarisation, la section destinée à comprendre le HTTPS est largement simplifiée : je n'aborde même pas les certificats qui sont pourtant les pierres angulaires des protocoles SSL et TLS. Si vous souhaitez en savoir plus à ce sujet, je vous invite à lire l'article d'OpenWeb très bien illustré par des animations pédagogiques.

Malgré le bon niveau de sécurité qu'apporte la mise en place du protocole HTTPS pour votre site, il existe des techniques pour contourner cette barrière. Vous pourrez ainsi lire un très bon article au sujet de la technique "Man in the Middle" ou celui-ci, qui passe en revue les différents types d'attaque.

Une autre faille non résolue par la mise en place du protocole HTTPS réside dans le choix du couple identifiant et mot de passe qui est certainement la vulnérabilité la plus facile à exploiter.

Je reste cependant convaincu que la tendance actuelle, dont la généralisation du HTTPS est une des facettes visibles, s'inscrit dans une véritable évolution des consciences sur l'importance de protéger ses données et d'appréhender plus justement les moyens que nous avons de le faire.