Blog

Passer son Magento en https (certificat SSL)

Qu’est-ce que le https ?

C’est un protocole qui sécurise les échanges entre le navigateur du visiteur et le serveur qui héberge votre site par un chiffrage qui empêche l’interception des données. En effet, certaines techniques « simples » permettent d’intercepter les données échangées, et sans le https les informations qui circulent sont clairement lisibles. Par exemple, quelqu’un de mal intentionné pourrait récupérer l’email et le mot de passe d’un utilisateur en train de se connecter à son compte. Il y a de fortes chances que ce couple d’identification fonctionne alors aussi sur d’autres sites (facebook, banque, etc..), c’est donc une sécurité importante à mettre en place.

C’est pourquoi les navigateurs informent maintenant des risques à remplir un formulaire sur les sites non sécurisés et que c’est donc catastrophique pour une boutique en ligne de ne rien faire. D’autant que le https se généralisant, votre boutique sera beaucoup plus rassurante pour vos clients si elle arbore fièrement son cadenas.

Comment se matérialise une connexion https ?

Dans votre navigateur, à gauche de l’adresse du site que vous visitez, vous verrez un petit cadenas. Les adresses des pages du site commencent par « https:// » et non « http:// ».

exemple https

 

 

Comment passer en https ?

Tout d’abord, il faut que votre hébergement vous le permette. Longtemps proposé sous forme d’option payante, la plupart des hébergeurs fournissent maintenant gratuitement cette possibilité. C’est naturellement le cas sur nos offres d’hébergement, et particulièrement notre offre d’hébergement Magento.

Il faut donc vous rapprocher de votre hébergeur pour activer l’option. Lorsqu’elle est activée, si vous appelez votre site en commençant par « https:// » le navigateur doit vous indiquer qu’un certificat valide est en place.

Comment passer Magento en https ?

Magento gère plusieurs niveaux de protection https :

  • L’administration
  • La partie espace client et tunnel de commande de la partie publique uniquement
  • Toutes les autres pages de la partie publique

Cela se passe dans Système / Configuration / Général / Web dans les onglets « Unsecure » et « Secure » et ce n’est pas très logique… Voyons cela :

L’onglet « Secure » permet d’activer le https sur l’administration et la partie publique uniquement connectée (espace client, tunnel de commande).

Il vaut mieux commencer par ici. Sur le champ « Base URL », rajouter un « s » à « http » et activer les champs « Use Secure URLs in Frontend » et « User Secure URLs in Admin ».

Dorénavant, l’accès à votre administration sera sécurisé, ainsi que la connexion à l’espace client et le tunnel de commande. A ce stade, les pages vraiment importantes sont protégées (celles qui échangent des données critiques entre le navigateur et le serveur). Mais pourquoi s’arrêter en si bon chemin ?

Pour activer le https sur toutes les autres pages publiques, il faut rajouter un « s » à « http » de l’onglet « Unsecure », c’est tout !

Magento https unsecure

Travail complémentaire nécessaire

A ce stade, toutes les pages de votre Magento sont bien appelées en https. Mais le https a une contrainte forte : toutes les ressources appelées par chaque page doivent elles-aussi avoir une url en « https:// ». Les ressources .js et .css gérées par Magento sont déjà bien appelées, mais pas vos ressources externes : polices, tracking, appels facebook, twitter etc… doivent aussi être appelées en https.

Il faut alors repasser sur toutes les vues de votre Magento pour s’assurer que ces appels sont corrects. L’astuce, plutôt que de remplacer « http:// » par « https:// » c’est de plutôt remplacer par « // », ce qui laissera le navigateur appliquer automatiquement le même protocole que la page. Un bon « Rechercher / Remplacer » s’impose pour cette étape et c’est finalement assez rapide.

<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Raleway:400,700" />

Il faut aussi penser au contenu que vous avez mis dans vos blocks et pages CMS : faites une recherche dans la base de données des chaînes commençant par « http:// » et remplacez si c’est pertinent le début par « https:// ».

Ensuite, il faut penser à vos webservices : pour le(s) paiement(s) en ligne particulièrement, il faudra penser à modifier votre configuration pour que le webservice appelle la page de retour en « https:// ». Cela ne se modifie généralement pas dans Magento mais sur l’espace d’administration dédié du webservice.

Enfin, il faudra mettre en place une redirection 301 de toutes vos pages en « http:// » vers « https:// ». Voici comment faire dans son .htaccess :

 # HTTP -> HTTPS
   RewriteCond %{SERVER_PORT} 80
   RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

ou derrière un proxy :

# HTTP -> HTTPS
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} !.test$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

A la fin de cette étape, toutes vos pages doivent arborer fièrement le cadenas et aucun message de sécurité.

Les imprévus !

Certaines extensions ont malheureusement des urls codées en dur :-( Il faudra donc toutes les vérifier, toujours en recherchant « http:// ».

Vérification

Vous passerez naturellement sur toutes (oui TOUTES) les pages de votre boutique, jusqu’au retour de paiement, pour s’assurer que le cadenas est bien affiché partout !

https non valide

Cette page n’est pas sécurisée

Et mon référencement ?

Le passage en https est une bonne chose pour votre référencement, puisque Google incite tout le monde à y passer ! Nous n’avons vu aucune baisse de trafic ou perte de position en migrant des dizaines de client en https ces derniers mois ! A part en cas de mauvaise exécution, il n’y a donc rien à craindre mais au contraire il faut s’attendre à bénéficier d’une légère amélioration, puisque votre site sera indiqué comme « sécurisé » dans les résultats de Google.

Pensez à mettre à jour vos réglages Google Analytics (passage en https sur propriétés et vues) et créer une nouvelle propriété dans Search Console en y re-déclarant votre sitemap.

Comments are closed, but trackbacks and pingbacks are open.