Activer le ssl / https sur sa boutique PrestaShop est aujourd’hui une nécessité pour rassurer, pour se conformer aux exigences de Google et pour vendre sur des marketplaces également. Ayant des clients sur la version 1.5 de PrestaShop et celle-ci étant plus compliquée pour un passage à la connexion sécurisée, voici un tuto détaillé.
Activation du https sur PrestaShop
Le tuto présenté ici est effectué sur la version 1.5.3.1 de PrestaShop car moins claire que la version 1.6 et 1.7 de PrestaShop. IMPORTANT : ce tuto peut aussi fonctionner avec les versions de PrestaShop 1.6 et supérieures.
Pour rappel, vous avez besoin d’un certificat SSL à commander auprès de votre hébergeur pour activer le HTTPS sur votre boutique.
Pas besoin d’être un expert PrestaShop mais un peu de prudence, je vous conseille de faire une sauvegarde complète des fichiers et de la base de données. Une fois la sauvegarde terminée, rendez-vous dans le back office > préférences > général et activez le https en cliquant sur la phrase noire “Please click here to use HTTPS protocol before enabling SSL” (CF capture d’écran).
Une fois que cette option est activée, vous avez désormais sur cette même page la possibilité d’activer ou non le SSL.
Régénération du htaccess de PrestaShop 1.5
Afin de bien rediriger les urls sur le https://votrenomdedomaine.com, rendez-vous dans le back office > préférences > SEO & URLS et vérifiez que les champs “Domaine” et “Domaine SSL” sont bien remplis avec votre nom de domaine y compris les www.
Pour vérifier que le SSL est bien fonctionnel sur votre site, connectez-vous à l’administration de PrestaShop et vérifiez la présence du https comme suit :
Et normalement ça devrait fonctionner partout sur votre site, sauf les pages produits toujours en http:// et la question : pourquoi ? Vous trouverez la solution à votre problème dans la suite de l’article.
Corrections des erreurs courantes avec le HTTPS et PrestaShop
La connexion n’est pas sécurisée sur votre boutique malgré tout
En activant le HTTPS sur votre site, vous devez charger tous les éléments de votre site en HTTPS, qu’ils soient internes ou externes à votre site. Pour vérifier cela, ouvrez votre navigateur (Google Chrome dans mon cas) et faites un clic droit puis “Inspecter”. Un fenêtre du navigateur va s’ouvrir et occuper une partie de l’écran. Dans cette fenêtre, cliquez sur “Console” dans le menu. Si vous lisez des “Mixed Content” alors vous avez un problème de contenu chargé en HTTP donc votre site n’est pas sécurisé.
Il vous faut alors savoir où sont appelés chaque élément pour modifier l’url et basculer en https. La plupart du temps, vérifiez dans les modules qui proposent des éditeurs WYSIWYG (éditeur visuel) et dont le contenu peut être des images.
Vous avez une boucle de redirection sur les fiches produits
Après pas mal de recherche, c’est un bug natif à PrestaShop que l’on peut corriger en faisant un override de la Class Link.php et plus précisément en modifiant la fonction getProductLink à la ligne 94 (PrestaShop 1.5.3.1). Remplacez le http:// pour https:// et ça fonctionne. Voici le code complet de la fonction modifiée :
Votre boutique ne s’affiche plus et vous avez l’erreur ERR_TOO_MANY_REDIRECTS
Si votre navigateur affiche le code erreur ERR_TOO_MANY_REDIRECTS, il se peut que vous ayez oublié d’activer l’option “activer le SSL sur tout le site” dans le back office > Préférences > Générales.
[EDIT du 26/10/2018]
Voici une autre piste pour corriger l’erreur ERR_TOO_MANY_REDIRECTS sur PrestaShop qui n’est en fait qu’une boucle de redirection. Il faut modifier la fonction redirectLink() de la classe Tools.php comme suit :
Les liens sont cassés dans les descriptions produits
Pour corriger les anciens liens en http, deux solutions :
1/ Soit vous corrigez à la volée en appliquant du smarty dans les modèles d’affichage TPL du thème (je vous conseille la seconde piste) :
descriptions longues des produits
descriptions courtes des produits
contenu des pages CMS
2/ Soit vous remplacez toutes les urls dans la base de données et dans ce cas, faites une sauvegarde ! Connectez-vous à PhpMyAdmin puis lancez les requêtes suivantes en remplaçant par votre nom de domaine :
table ps_configuration (paramètres de la boutique)
table ps_product_lang (descriptions courtes des produits)
table ps_product_lang (descriptions longues des produits)
table ps_cms_lang (pages de contenu CMS)
Vérification du passage au HTTPS de PrestaShop
Une fois le tuto suivi, votre boutique est désormais en https mais il est primordial de vérifier que toutes les variantes d’urls pointent bien vers votre boutique. Par exemple si votre boutique est https://www.maboutique.com, il faut que http://www.maboutique.com pointe vers le https.
Vous pouvez vérifier via le site : http://www.redirect-checker.org/index.php
Une fois que vous avez rentré votre adresse en HTTP, le résultat affiché est du genre :
Dans le cas présent, la redirection permanente / 301 est bien active donc tout est normal. Si ce n’est pas le cas, lisez la suite de l’article.
Créer redirection 301 vers PrestaShop en HTTPS
Si votre site n’est pas en https lorsque vous tapez dans la barre d’adresse https://www.maboutique.com alors ouvrez le fichier .htaccess à la racine de votre hébergement. Ajoutez en début de fichier les lignes suivantes après avoir fait une sauvegarde du fichier :
A partir de maintenant, votre boutique PrestaShop est sécurisée en HTTPS / SSL ! Pensez également à ajouter votre nouveau site https dans Google Search Console (anciennement Webmaster Tools) et à basculer votre site en https dans Google Analytics. Attention également aux éventuelles redirections d’urls à prendre en compte.
Bonjour,
Merci pour le tuto, mon site prestashop 1.5.4 est bien passé en https, toutes mles pages s’affichent bien, mais impossible d’enregistrer une commande. je suis automatiquement renvoyé vers la page d’accueil lorsque je clique sur Ajouter au panier.
Avez vous une piste pour résoudre ce problème.
Merci beaucoup de votre aide
Agnès BH
Bonjour Agnès,
Merci pour votre commentaire.
Sans plus d’information, c’est très compliqué de résoudre le problème.
En revanche, vous pouvez activer le mode debug et étudier les logs d’erreur du serveur pour voir si il y a des erreurs lors de l’ajout panier.
Également, vous pouvez ouvrir la console du navigateur pour voir si il y a des erreurs js.
Bon courage !
bravo pour ce tuto, j’ai résolu mon probleme grace a vos conseils. Bravo et merci !
Bonjour,
Merci pour ce tuto, excellent comme bien d’autres. J’ai fait les modifications et il me semble que le site en Front office est bien sécurisé sportgoodies.fr/shop par contre pour la partie back office je ne le suis pas est-ce normal ?
Merci
Bonjour Pascal,
Il est possible en effet de se connecter à l’admin de PrestaShop en http bien que le front office soit en https.
Aucun souci de ce côté là 😉
Bonjour
je regarde tous les tutos sur le sujet et je tourne en rond tout de même. je travaille sur la version 1.7, la fonction ssl ne s’active pas sur mon site. Je n’arrive donc pas a passer en https. Je n’aime pas ça mais je suis rentré dans le code en voyant un tuto de Webbax mais j’ai toujours l’erreur ERR_TOO_MANY_REDIRECTS.
lorsque je fais le test pour savoir si la boutique supporte le ssl, l’url passe en https mais le bouton “activer le ssl sur tout le site” reste grisé.
Y a t il moyen de forcer le la commande se trouvant dans le BO?
merci a vous
Bonjour,
Pour forcer le HTTPS, il faut aller dans la table configuration puis chercher les entrées avec “SSL” et passer la valeur à 1.
Bon courage !
Bonjour Arnaud
Mon problème est réglé grâce a votre intervention, suite au changement de valeur dans la base tout passe en HTTPS. Merci encore. Je vais livrer le requêtes sur le post initial pour les autres utilisateurs.
merci
philippe
Bonjour Philippe,
Avec plaisir et heureux d’avoir pu vous aider 🙂
https://www.prestashop.com/forums/topic/995699-probl%C3%A8me-de-passage-en-https/?_fromLogin=1
et encore merci
Bonjour,
j’ai passé mon site qui est vraiment trop lent sur GTmetrix et j’ai commencé à régler quelques soucis
il m’affiche systématiquement cette erreur
Avoid landing page redirects for the following chain of redirected URLs.
http://www.sweetlovemessage.fr/
http://sweetlovemessage.fr/
https://sweetlovemessage.fr/
auriez-vous une idée pour m’aider à régler ça? je tourne un peu en rond après avoir essayé pas mal de petite chose sans succès je n’arrive pas à résoudre ce problème
merci
Vanessa
Bonjour Vanessa,
Si vous avez des redirections 301 en place alors vous n’avez pas à tenir compte de cette remarque.
Voici un outil pour tester une redirection : http://www.redirection-web.net/
Voici comment créer une redirection 301, à ajouter dans le fichier .htaccess à la racine de votre site :
[code]
Redirect permanent /monanciennepage.html http://www.monsite/manouvellepage.html
[/code]
A bientôt 🙂
Merci pour cet excellent article, j’ai pu passer mon site multiboutique 1.6.1.20 en SSL en 30 min ! Je n’ai pas eu de problème de bouclage. Vos scripts pour les liens à corriger en BDD ont marché parfaitement. J’ai ensuite corrigé manuellement quelques liens externes (youtube notamment) et c’est tout. Bref que du bonheur et me voic avec 2 beaux cadenas verts ! Merci encore
Bonjour,
Merci pour les détails.
J’ai testé le process sur un PS 1.5.5.0, j’ai plusieurs problèmes :
1- il n’y a pas d’option “activer le SSL sur tout le site” dans l’admin ! (pourtant ma version est plus récente que celle de cet article)
2- le .htaccess est bien regénéré, mais son contenu n’a pas changé !
3- sur le front rien n’est en httpS, le pire c’est quand je saisie une URL en httpS ça fait une redirection (301) vers la version http
Qu’est ce qui ne va pas avec cette version ? dois-je mettre à jour vers la 1.5.6 ?
Merci d’avance 🙂
Bonjour Sami,
1) Il n’y a pas d’option pour activer le SSL sur tout le site en effet, je viens de compléter l’article avec une autre piste dans la partie “Votre boutique ne s’affiche plus et vous avez l’erreur ERR_TOO_MANY_REDIRECTS”.
2) Dans ce cas il faut vérifier si il est bien chmod 666 via votre client FTP.
3) A placer dans le .htaccess le point “Créer redirection 301 vers PrestaShop en HTTPS”
La mise à jour n’est pas nécessaire même si ça serait un plus pour la correction de bugs / améliorations apportées, etc.
Courage 🙂
Bonjour,
Merci beaucoup pour tous ces conseils qui m’ont permis de passer mon site en HTTPS
il me reste cependant un problème que je n’arrive pas à résoudre sur la page du choix de paiement,
celle-ci n’est pas sécurisée en raison du mixed content ci-dessous (ancien module Twenga)
Chargement du contenu mixte actif « http://tracker.twenga.fr/e2d052ef28495e232ead12f88e2580d7 » (non sécurisé) sur une page sécurisée[En savoir plus]
commande
Chargement du contenu mixte actif « http://tracker.twenga.fr/e2d052ef28495e232ead12f88e2580d7 » (non sécurisé) sur une page sécurisée[En savoir plus]
commande
Échec du chargement pour l’élément dont la source est « http://tracker.twenga.fr/e2d052ef28495e232ead12f88e2580d7 ».
commande:17
ça fait plusieurs jours que je cherche et je ne trouve pas comment faire
si vous pouviez m’aider je vous en serai très reconnaissant car là je bloque
Bonjour Jean-Noel,
Merci pour votre message,
Il me semble que pour les trackers vous pouvez soit utiliser un module qui gère le https, soit remplacer l’url appelée donc remplacer manuellement l’url http:// par https:// et ça devrait fonctionner.
A bientôt
Je n’ai pas compris comment modifier les url pour les images. Pas de précisions ? Dans quel fichier aller ? Merci d’avance.
Bonjour Marnik,
Merci pour le commentaire,
Il se peut au passage https que certains contenus soient gérés avec des éditeur comme ceux pour les produits et catégories.
Dans ce cas, les liens et les urls des images doivent être corrigés dans ces éditeurs pour ajouter le https au lieu du http.
A bientôt 🙂
Un grand merci pour la précision concernant le fichier Link.php.
En effet, celui-ci bloquait la collecte des produits et l’exploration de google.
Avec plaisir 🙂
Hello,
Merci d’avoir fait un retour sur le SSL / HTTS et de nous avoir donné ton expérience sur le sujet.
Parfois il faut creuser le bug, car l’erreur “ERR_TOO_MANY_REDIRECTS” est vraiment contraignante et devoir modifier les classes est une étape pénible (personnellement j’ai dû bien souvent aller plus loin que la méthode getProductLink).
De mon côté j’ai abordé aussi cette problématique pour Prestashop 1.4 : https://www.webbax.ch/2017/05/24/ssl-prestashop-1-4/
Et à voir aussi pour les versions du type Prestashop 1.7 :
https://www.webbax.ch/2017/06/05/prestashop-1-7-ajouter-ssl-https-ep-23/
A bientôt !
Hello Germain,
En effet, c’est penible de devoir aller modifier des éléments tels que des Class ou des Controllers. J’ai insisté sur PrestaShop 1.5 car c’est la version la plus compliquée pour passer en https je trouve. Merci pour ton retour 😉