Le « https » facilement et gratuitement sur son site Joomla

Depuis début février 2016, SiteGround offre gratuitement les fameux nouveaux Certificats de Sécurité Open Source de Let’s Encrypt, même pour les hébergements mutualisés :
https://www.siteground.com/blog/lets-encrypt

NB : depuis lors, d'autre hébergeurs ont suivi, tels que

Le but d’un certificat est de sécuriser la communication entre l’utilisateur et le serveur.

C’est bien entendu un « must » p.ex. pour un site de e-commerce, mais cela est de toute façon un « plus » pour n’importe quel site dès lors qu’un utilisateur (pire : un administrateur) introduit son couple identifiant/mot de passe… qui peut donc être intercepté s’il n’est pas crypté.

Autre élément que certains apprécieront : outre l’avantage en terme de sécurité et de confidentialité, basculer vers le https donne aussi un léger avantage en termes de Search Engine Optimization (SEO).
Un article récent intitulé "Google Will Soon Shame All Websites That Are Unencrypted" le confirme encore.

Concrètement, cette sécurisation est symbolisée dans les navigateurs par un cadenas, la plupart du temps vert :

  • Google Chrome
    image001
  • Firefox
    image002
  • Microsoft Edge
    image003

Les avantages principaux des certificats Let’s Encrypt par rapport aux autres certificats SSL/TLS sont :

  • La gratuité
  • La facilité d’installation
  • L’absence d’envoi d’email de validation
  • L’absence d’exigence d’adresse IP fixe (qui est un poste de coût supplémentaire)
  • L’intégration par tous les navigateurs principaux
  • Le renouvellement automatique

Pour plus d’informations sur le projet Let’s Encrypt, voyez directement https://letsencrypt.org.

La boutique

Joomla! 3 Le livre pour tousJoomla! 3 Le Livre Pour Tous
est écrit pour toutes les personnes qui débutent avec Joomla!, ou qui possèdent déjà quelques connaissances avec les versions précédentes, et qui souhaitent construire et entretenir un site web sans avoir à entrer dans le code.

Activation de Let’s Encrypt

Concrètement, il suffit de se rendre dans le cPanel de SiteGround et d’activer Let’s Encrypt, qui se trouve dans la rubrique « security ».
image004

Après activation, le cPanel vous montera ceci :
image005

Quid en cas d’erreur lors de l’installation ?

Il est possible que l’installation ne passe pas mais qu’on reçoive le message d’erreur suivant : « There was a problem installing the certificate. Please contact support for more information »

Dans ce cas, il est probable que la cause soit simplement que le fichier .htaccess à la racine du site bloque une requête automatique de l’installateur (ce qui en soi est positif : ça prouve que vous avez un fichier .htaccess à large spectre).

La solution consiste à désactiver le fichier .htaccess *juste le temps* de procéder à l’installation de Let’s Encrypt.
NB : pour les utilisateurs de aeSecure : même pas la peine de désactiver .htaccess, il suffit de commenter les lignes suivantes (càd d'ajouter le caractère # en début de ligne pour celles qui n'en ont pas) :

#AESECURE_BLOCKHIDDENFOLDERS_START
#aesecure 2.6
# Block access to hidden files and directories.
# This includes directories used by version control systems such as Git and SVN.
#
# RewriteCond %{SCRIPT_FILENAME} -d [OR]
# RewriteCond %{SCRIPT_FILENAME} -f
# RewriteRule "(^|/)\." /aesecure/accessdenied.php?s=26 [L]
#
#AESECURE_BLOCKHIDDENFOLDERS_END

Si la cause du problème est autre, vous pouvez bien entendu contacter le support de SiteGround qui est très réactif.

La boutique

formation-video-joomla-3Formation vidéo Joomla!
Découvrez Joomla! 3 avec 40 tutoriels vidéos pour débutant. Apprennez à construire votre site web, de sa création à sa mise en ligne sans oublier sa maintenance.
Ces 40 tutoriels vidéo représentent une durée totale de plus de 6 heures.

Comment vérifier que le certificat a été installé avec succès ?

Pour vérifier si on le souhaite la bonne installation du certificat, on peut se rendre sur le site suivant :

https://www.sslshopper.com/ssl-checker.html

Un autre site intéressant pour tester son certificat et même voir en détail la compatibilité par navigateur :

https://www.ssllabs.com/ssltest/analyze.html

Activer le SSL sur son site Joomla

A ce stade, votre site répond aussi bien en http:// comme avant, que dorénavant en https://

Néanmoins, l'idée est bien de "forcer" le site et les visiteurs à utiliser le https://
Avoir installé le certificat ne suffit en effet pas à « forcer le cadenas » dans la barre d'adresse du navigateur lorsque l’on ouvre le site concerné.

Après l’installation du certificat, il faut donc configurer le SSL sur son site Joomla.

Pour cela, rendez-vous dans l’Administration > Système > Configuration > Serveur > Forcer SSL

… et activer le SSL (pour tout « administration et site » ou éventuellement pour « administration uniquement »).

image007

NB : alternativement, on peut aussi activer le SSL en ajoutant quelques lignes dans le fichier .htaccess (en veillant à adapter MONSITE par votre nom de domaine. Notez que je n’ai pas testé cette voie, puisque la configuration depuis l’administration de Joomla est plus rapide et intuitive.

You can force SSL for the Joomla! application by adding the below rows to the top of your .htaccess file. Code:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_HOST} ^MONSITE\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.MONSITE\.com$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L]

Bingo, le cadenas est là !

Ça y est, après avoir d’une part effectué l’installation du certificat et d’autre part activé l’utilisation du SSL dans Joomla, votre site apparaît enfin avec le cadenas voulu dans votre navigateur !

Module de connexion

Si votre site comporte un module de connexion, n’oubliez pas qu’il existe un paramètre « Connexion cryptée » que vous pouvez y activer.

image008

Contenu mixte : explication

Parfois, le cadenas affiché dans le navigateur n’est pas un cadenas entièrement vert, par exemple parce qu’il indique qu’il y a un problème de « contenu mixte ».

Le lien suivant explique de quoi il s’agit et les différents cas de figure dans le cas de Firefox (qui est plus explicite que Google Chrome, avec carrément 4 déclinaisons du cadenas) :

https://support.mozilla.org/fr/kb/blocage-du-contenu-mixte-avec-firefox?redirectlocale=en-US&as=u&redirectslug=how-does-content-isnt-secure-affect-my-safety&utm_source=inproduct

Concrètement :

Pas de contenu mixte : sûr

  • image010 : vous verrez un cadenas vert lorsque vous êtes sur une page entièrement sécurisée qui ne tente pas de charger des éléments non sécurisés.

Contenu mixte bloqué : sûr

  • image011 : vous verrez un cadenas vert avec un triangle d'avertissement gris lorsque Firefox a bloqué les éléments non sécurisés sur cette page. Cela signifie que la page est désormais sûre. Cliquez sur l'icône pour afficher le centre de contrôle et obtenir plus de détails de sécurité sur la page.

Contenu mixte pas bloqué : pas sûr

  • image012 : si vous voyez un cadenas barré en rouge, c'est que Firefox ne bloque pas les éléments non sécurisés, que cette page est vulnérable aux écoutes et aux attaques, et que vos données personnelles à partir du site peuvent vous être volées. Vous ne devriez pas voir cette icône, sauf si vous avez débloqué le contenu mixte en suivant les instructions de la section suivante.
  • image013 : un cadenas gris avec un triangle orange indique que Firefox ne bloque pas le contenu passif non sécurisé. Les pirates peuvent être capables de manipuler des parties de la page, par exemple en affichant du contenu falsifié ou inapproprié, mais ils ne devraient pas pouvoir voler vos données personnelles à partir du site.

Contenu mixte : la solution

Le site suivant permet de rapidement identifier les éléments de la page qui ne sont pas sécurisés :

https://www.jitbit.com/sslcheck/

Il peut y avoir plusieurs causes à cela, telles que

  1. l’intégration d’une image via un lien vers un site externe en http://
  2. … ou même des liens externes générés par le template lui-même
    Exemple : http://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300 

Dans le 1er cas, il suffit d’aller éditer l’article ou le module utilisant http:// pour le remplacer par // (ou https://)

Dans le second cas, il faut en général éditer les fichiers du template qui font contiennent ces références externes. Par exemple, pour un célèbre fournisseur de template, il était fait référence aux polices Google dans deux fichiers, où il suffit à nouveau de changer le http:// par // :

  • /templates/$template/tpls/blocks/head.php
  • /templates/$template/etc/assets.xml

Il se peut aussi que des liens externes (polices, images, …) soient mentionnés directement dans les fichiers css, où l’on va aussi devoir de la même façon remplacer le http:// par //

Plus de détails en cas de besoin sur https://www.yireo.com/tutorials/joomla/joomla-administration/1506-dealing-with-ssl-mixed-content-in-joomla.

Contenu mixte : modifications à grande échelle

Si les modifications liées au problème de contenu mixte sont peu nombreuses, vous aurez plus vite fait d'éditer "manuellement" les articles et/ou modules concernés.

Par contre, si vous constatez que vous avez un grand nombre de modifications à effectuer, pensez à une solution telle que Regular Labs DB Replacer :
https://www.regularlabs.com/extensions/dbreplacer

Vous pouvez en effet ainsi directement par exemple changer toutes les occurrences de

scr="http:// ou href="http://

par respectivement

scr="// ou href="//

Attention cependant lors de l'utilisation de DB Replacer : une fois votre remplacement validé, c'est directement dans la base de données que tous les remplacements sont effectués. Il n'y a donc pas de bouton "retour en arrière" (prenez donc soin de réaliser un backup avant d'effectuer une telle opération).

Le cas particulier de CloudFlare

SiteGround offre gratuitement une version "light" de CloudFlare.

Si CloudFlare Free a été activé, en essayant d'accéder à votre site en https:// vous aurez le message d'erreur suivant :

ERR_SSL_PROTOCOL_ERROR

CloudFlare Free ne supporte en effet pas le SSL (https) :

CloudFlare Free Plus

Dans ce cas, deux solutions s'offrent à vous, selon vos priorités :

  1. ou bien passer à la version Plus de CloudFlare (payante)
  2. ou bien simplement désactiver CloudFlare en cliquant sur le bouton Manage dans l'interface SiteGround :
    CloudFlare disable
    A noter cependant que dans ce cas, il vous faudra plus que probablement désinstaller et réinstaller le certificat pour qu'il fonctionne correctement.
    Mieux vaut donc alors anticiper et désactiver CloudFlare avant d'installer Let's Encrypt

Google Search Console (Google Webmaster Tools)

A noter que, pour l'instant, Google Search Console (Google Webmaster Tools) ne gère pas automatiquement le basculement vers https, si bien qu'il vous faudra à nouveau

  • déclarer votre site
  • et déclarer le sitemap éventuel

Derniers détails : robots.txt, .htaccess, sitemap

Pensez également à regarder

  • le fichier robots.txt
  • le fichier .htaccess
  • le sitemap du site (qu'il soit automatique via une extension ou manuel)

afin de contrôler que tous les liens qui y sont mentionnés intègrent bien le https.

aeSecure : cas particulier éventuel

Vous utilisez aeSecure ? Félicitations !

aeSecure est en effet un outil extraordinaire pour sécuriser et optimiser votre site, outre le fait que son interface permet d’en apprendre énormément sur le sujet.

Petite précision utile dans ce cadre : si vous deviez constater que certaines opérations ne fonctionnent pas (typiquement, les fonctions qui font un appel externe au site aesecure.com, telles que la mises à jour facile par double-clic, ou la fonction « charger depuis aeSecure » pour les utilisateurs avec licence PRO), basculez simplement votre interface aeSecure de https:// en simple http://

https://www.MONSITE.com/aesecure/setup.php?LONG_KEY

http://www.MONSITE.com/aesecure/setup.php?LONG_KEY

D'autres questions ?

SiteGround a rassemblé une série de questions-réponses sur son site, à la page suivante :

https://www.siteground.com/kb/category/ssl-issues-faq/lets-encrypt 

Pour le reste, si vous êtes à la recherche de plus le lecture sur le sujet, pourquoi ne pas commencer par

http://joomlaseo.com/blog/ssl-for-joomla-and-seo 

Notez cet article:
16
Edito - Cinnk magazine février 2016
Comment corriger les problèmes d'URLs canonical av...

Commentaires 4

 
cavo789 le vendredi 12 février 2016 16:00

Excellent article Marc ! Merci pour avoir pris le temps de tester le SSL de Let's Encrypt et d'avoir partager ton expérience.

Concernant aeSecure : j'ai aussi passé mon site en https et j'ai écris une règle .htaccess pour permettre une connexion http afin que les sites où un aeSecure est déjà installé puissent continuer à requêter aeSecure.com pour déterminer le numéro de la dernière version.

Excellent article Marc ! Merci pour avoir pris le temps de tester le SSL de Let's Encrypt et d'avoir partager ton expérience. Concernant aeSecure : j'ai aussi passé mon site en https et j'ai écris une règle .htaccess pour permettre une connexion http afin que les sites où un aeSecure est déjà installé puissent continuer à requêter aeSecure.com pour déterminer le numéro de la dernière version.
Stef le jeudi 9 février 2017 15:31

Bonjour et merci pour cet article qui m'a beaucoup aider à passer au https :-)
Pour l'instant je me sers du fichier ".htaccess" pour forcer le https sur tout le site avec ce code fourni par SiteGround :
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yourdomain.com/$1
Mais vous proposez la solution alternative de passer par la configuration Joomla. J'aimerais beaucoup savoir lequel des deux est le plus adéquat ? Une idée ?

Bonjour et merci pour cet article qui m'a beaucoup aider à passer au https :-) Pour l'instant je me sers du fichier ".htaccess" pour forcer le https sur tout le site avec ce code fourni par SiteGround : RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://yourdomain.com/$1 Mais vous proposez la solution alternative de passer par la configuration Joomla. J'aimerais beaucoup savoir lequel des deux est le plus adéquat ? Une idée ?
Marc Dechèvre le jeudi 9 février 2017 15:55

@Stef :
* forcer le SSL depuis la configuration Joomla est le plus facile (n'importe qui peut le faire)
* mais strictement dit, le forcer depuis le htaccess est encore mieux car ça fait (potentiellement) une redirection de moins : queqlu'un qui tape monsite.com va directement être redirigé vers https://www.monsite.com. Sinon, on pourrait avoir deux redirections : une première pour ajouter le www et une deuxième pour forcer le SSL
Autre lecture utile si p ex il faut éviter de forcer la redirection pour certains composants :
https://www.ostraining.com/blog/coding/htaccess-ssl/

@Stef : * forcer le SSL depuis la configuration Joomla est le plus facile (n'importe qui peut le faire) * mais strictement dit, le forcer depuis le htaccess est encore mieux car ça fait (potentiellement) une redirection de moins : queqlu'un qui tape monsite.com va directement être redirigé vers https://www.monsite.com. Sinon, on pourrait avoir deux redirections : une première pour ajouter le www et une deuxième pour forcer le SSL Autre lecture utile si p ex il faut éviter de forcer la redirection pour certains composants : https://www.ostraining.com/blog/coding/htaccess-ssl/
Stef le jeudi 9 février 2017 16:41

Hopa là... Bookmarké ! :-)
Merci Marc...

Hopa là... Bookmarké ! :-) Merci Marc...
Déjà inscrit ? Connectez-vous ici
Guest
jeudi 25 mai 2017
Si vous souhaitez vous inscrire, veuillez saisir un nom d'utilisateur, mot de passe et nom.

Image Captcha

Sur ce site, nous utilisons des cookies.