Joomla! et le HTTPS

D'après un article publié le 06 août 2014 par Zineb Ait Bahajji et Gary Illyes, analystes Webmaster Trends chez Google, le HTTPS favoriserait le ranking SEO. En effet, le caractère "sécurité" d'un site est un des critères primordiaux aux yeux du géant de Mountain View. D'ailleurs, vous n'y avez sans doute pas prêté attention jusqu'ici mais le HTTPS est déjà en vigueur sur Google+, Gmail, Google Drive, Youtube... Je ne suis pas devin mais je crois que l'on nous montre le chemin à suivre !

Afin d'avoir une vue aussi complète que possible, je vous propose de faire le tour de cette question au travers d'un tutoriel consacré au HTTPS. Pour simplifier, le HTTPS est une combinaison du HTTP avec une couche de chiffrement SSL (ou TLS). Nous verrons dans un premier temps que cela implique et ensuite, comment le mettre en oeuvre sur votre site Joomla!

Joomla! et le HTTPS

Joomla! et le HTTPS

Pourquoi utiliser le HTTPS sur mon site ?

Le protocole TLS (anciennement SSL jusqu'en 2001), c'est ce petit cadenas qui est apparu sur les pages Web depuis Netscape 2.0 en 1996. D'une manière générale, on a prit l'habitude de croire que ce type de protocole est réservé aux sites e-commerce, aux sites financiers et/ou sensibles alors qu'en fait, n'importe quel site Internet peut en bénéficier, y compris votre site Joomla!. Vous n'avez même pas besoin d'installer des extensions supplémentaires puisque cette fonctionnalité est intégrée nativement dans pour Joomla!. Vous pouvez donc l'activer dès maintenant pour proposer vos utilisateurs une navigation plus sécurisée.

Je n'ai rien de spécial à protéger

Sans doute mais n'oubliez jamais qu'une des données les plus importantes de votre site Joomla! sont votre identifiant et votre mot de passe pour accéder au backend. Si vous n'utilisez pas au minimum le protocole SSL, des personnes malveillantes peuvent tenter de compromettre votre site en dérobant vos accès. Ensuite, ils leur suffit de modifier le mot de passe et alors, votre site vous est définitivement perdu.

Ok, quel est le risque ?

Voyons cela plus en détail. Quand une personne s'inscrit ou s'identifie sur votre site, ses identifiants et mot de passe sont envoyés par Internet au serveur. C'est à ce moment précis que peuvent être interceptés le nom d'utilisateur et le mot de passe, c'est à dire n'importe où entre le navigateur de l'utilisateur, le routeur sans fil et jusqu'au serveur lui-même.
Cependant avec la généralisation des réseaux Wi-Fi gratuits dans certains lieux publics (les restaurants et les cafés, par exemple), ces données peuvent être interceptées dès la sortie de l'ordinateur et avant qu'elles n'arrivent sur Internet.

Qu'est-ce que l'on peut faire avec les données d'identification de mon site ?

Si vous êtes (super)administrateur, on peut en faire ce que l'on veut : c'est un piratage complet qui vous attend.
Pour les utilisateurs, la sur-utilisation du mot de passe est un problème extrêmement répandu en sécurité informatique. Vous ne pensez sans doute pas que ces données puissent être précieuses mais elles peuvent l'être si par exemple, un de vos utilisateurs a le même mot de passe sur tous les sites où il est enregistré : un site e-commerce, son hébergeur, ou n'importe quel site plus ou moins sensible. Vous comprenez alors l'intérêt et la valeur que peuvent représenter ce type d'informations pour des personnes indélicates.

Comment le protocole TLS peut-il réduire cela ?

C'est finalement assez simple, en fait. Dans le module de connexion de Joomla!, il est un réglage "Connexion cryptée". Lorsque vous avez un certificat SSL activé sur votre site, ce paramètre cryptera les données de connexion dans le navigateur de l'utilisateur avant qu'elles ne soient envoyé sur Internet à votre serveur. C'est tout!

Les cookies de session sont également vulnérables

Quand un utilisateur se connecte en frontend ou au backend de votre site Joomla!, un cookie de session est envoyé dans le navigateur pour identifier cet utilisateur. Ce cookie est transmis à chaque chargement de la page afin que Joomla! identifie l'utilisateur qui consulte la page. Ce cookie leur accorde alors les privilèges en fonction de leur rang (utilisateur, auteur, administrateur, etc).

Bien que le cookie ne soit pas réellement une menace en soi car il finira par expirer, c'est toujours quelque chose qui peut être intéressant de sécuriser, en fonction du contenu de votre site. En utilisant simplement le protocole TLS sur votre site, ce cookie sera lui aussi crypté. Encore une fois, sécuriser ce détail est très simple : il suffit d'activer le paramètre "Forcer SSL" dans la configuration globale de Joomla!. Réglez-le sur "Administration seulement" ou "Administration et site".
Si vous avez un certificat SSL, il n'y a aucune raison valable de laisser le réglage sur "Aucun". Vous devriez au minimum choisir "Administration seulement», ce qui sécurisera le cookie de session de votre backend, empêchant ainsi l'accès à toute la partie "administration" de votre site.

Vraiment, c'est possible de faire ça ?

En 2010, un addon de Firefox nommé Firesheep a été mis en circulation. Cet addon balaye automatiquement un réseau Wi-Fi et permet d'afficher et d'utiliser des cookies de session pour des sites comme Facebook et Google. Il n'y a peut-être pas d'addons spécifiques pour Joomla! mais le risque est bien réel.

Quels sont les inconvénients ?

Les principaux inconvénients d'un certificat SSL sont le coût et un possible impact sur la performance du site. En fonction de votre hébergeur, un certificat SSL coûte en moyenne 40€ par an. Vous avez également la possibilité d'en acheter un auprès d'un fournisseur tiers, à condition toute fois que votre hébergeur accepte de l'installer ensuite sur son serveur.

Si le prix est acceptable selon le type de contenu de votre site, l'autre point à considérer est que ce certificat peut engendrer une baisse de performance. En effet, les images, les fichiers Javascript, les fichiers CSS seront cryptées. De ce fait, le navigateur de l'utilisateur ne sera pas en mesure de les mettre en cache. Cela signifie qu'il y aura plus de demandes par page. Cela dit, l'impact devrait cependant être minime, compte tenu de votre hébergement et de la volumétrie de trafic de votre site.

Pour quoi, pour quoi ?

Soyons clair, cela ne s'adresse pas à tous les sites en circulation. Si vous avez un site vitrine, le protocle HTTPS n'est pas fait pour vous. Idem pour un site e-commerce puisque la partie "paiement" est gérée par la banque. Reste les sites dits communautaires où chaque membre s'inscrit pour accéder au contenu (forums, réseaux sociaux, sites de rencontre, etc). Dans ce cas, on peut effectivement envisager la mise en place d'une protection des données personnelles par cryptage. Mais opter pour le HTTPS rien que pour céder aux sirènes du référencement de Google ne me semble pas être une raison valable.

Joomla! et le HTTPS

L'installation et l'activation

Dans cette seconde partie, nous allons voir en détail, comment configurer et activer le HTTPS dans Joomla!

Pour exécuter ce tutoriel, on suppose que vous avez déjà installé le protocole SSL sur votre serveur d'hébergement. Si non, vous devez d'abord acheter un certificat SSL (Secure Socket Layer) auprès de votre hébergeur ou auprès d'un revendeur de certificat. Bien que le protocole de cryptage SSL ne protège pas le site en lui-même car il ne chiffre que le trafic vers et depuis le serveur, il peut empêcher l'espionnage et protège les données sensibles de votre site.

Si vous avez un site e-commerce de type boutique en ligne, il est particulièrement important d'activer le HTTPS dans votre site Joomla! pour sécuriser les données des cartes de crédit, le contenu confidentiel, les mots de passe et toutes les données sécurisées. Une bonne utilisation de ce certificat SSL vous aidera à gagner la confiance de vos clients et à vendre plus.

Les versions 2.5 et 3 de Joomla! ont grandement amélioré la gestion du SSL. L'ajout d'un certificat SSL sur votre Joomla! permet de vous connecter avec le protocole sécurisé HTTPS au lieu de la norme HTTP. Vous pouvez activer ce protocole depuis le panneau d'administration pour l'ensemble du site (recommandé) ou pour certaines pages.

Activation sur l'ensemble du site

Ouvrez le panneau d'administration puis ouvrez "Système", puis "Configuration". Dans l'onglet "Serveur", vous avez le paramètre "Forcer SSL" qui propose 3 choix :

  • Aucun : par défaut, le SSL n'est pas activé
  • Administration : le SSL ne sera activé que sur la partie administration du site
  • Administration et site : le SSL sera activé sur l'ensemble du site.

Choisissez cette dernière option, puis enregistrez.
Si le protocole SSL n'est pas activé pour votre domaine auprès de votre hébergeur, cela va générer immédiatement une erreur en sauvegardant.

Important: la configuration de Joomla! vous permet de configurer le SSL mais si un internaute arrive sur une page de votre site via le préfixe HTTP, il ne sera pas automatiquement redirigé vers la page HTTPS correspondante. Pour cela, nous allons devoir modifier le fichier configuration.php à la racine de votre site.

Ouvrez configuration.php avec votre éditeur de texte préféré et repérez la ligne :

var $live_site =”;

remplacez-la par :

var $live_site = 'https://www.mon-site.com';

Ensuite, ouvrez le fichier .HTACCESS et ajoutez ces lignes à la fin du fichier :

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Activation sur certaines pages

Pour cela, vous devrez utiliser un plugin comme Yireo SSL Redirection Joomla Extension Directory qui fera parfaitement l'affaire. Qui plus est, il est gratuit et bénéficie d'excellents rating.

N'oubliez pas avant d'expérimenter le SSL que cela risque de réduire les performances de votre site.

Conclusion

Nous l'avons vu, cette mise en application demande une certaine technicité et votre webmaster sera à même d'effectuer cette opération pour vous. Cependant, le protocole HTTPS s'adresse surtout à un certain type de site. Cela est intéressant à mettre en place dès lors qu'il y a une connexion avec des données privées (identifiant et mot de passe). Cela permet d'éviter que ces données confidentielles transitent sans cryptage sur Internet. Les gros sites communautaires (avec ou sans forum) ont donc intérêt à s'y intéresser. Pour les sites e-commerce, c'est la partie "paiement" qui doit être sécurisée. Cette sécurisation incombe aux établissements bancaires, pas au commerçant. Enfin, pour la majeure partie des sites (type vitrine), il n'y a AUCUN intérêt à passer au HTTPS, même pour des raisons de référencement.

L'argument avancé par Google pour favoriser la sécurité des sites et ensuite, favoriser leur référencement est, selon moi, un argument non recevable. D'abord parce que tous les sites n'ont pas besoin de ce type de sécurisation (si vous ne recueillez pas de données personnelles ou financières, je n'en vois pas l'utilité) et parce qu'en terme de sécurité, il existe d'autres outils qui eux, font le job. Donc, l'argument sécuritaire (assez prisé en ce moment...) ne me semble pas suffisant pour franchir le pas.
Par ailleurs, Google stipule que cette mise en avant du HTTPS aura "moins de poids que d’autres signaux tels que le contenu de haute qualité". Sur la base des tests effectués par Google, le moteur de recherche estime que cette nouveauté a un impact sur "moins de 1% des requêtes mondiales", mais qu’il peut renforcer le signal en cas de besoin. Bref, l'impact sera vraiment à la marge.

Je ne saurais trop vous conseiller de prendre avis auprès de votre webmaster pour savoir ce qu'il convient de faire. Avant de se ruer sur le premier certificat SSL qui passe, il me semble plus prudent de voir comment va évoluer cette tendance et si elle sera un jour, devenue la norme. Pour le moment, je reste prudent et attentiste.


A PROPOS DE L'AUTEUR :
Webmaster freelance passionné par Joomla depuis 2007, Daniel défend la veuve et l'orphelin du web en créant des sites respectueux du W3C. Fort d'une expérience de plusieurs années, il partage ses connaissances dans un état d'esprit open source.
Daniel est également très impliqué dans la communauté Joomla depuis 2014 en étant membre actif de plusieurs projets, conférencier et fondateur du JUG Breizh.