Comment basculer votre site sous WordPress de HTTP à HTTPS ? Avec le déploiement massif des certificats gratuits proposés par Let's Encrypt - un projet mondial soutenu par de gros acteurs du Web, plus de 60% des sites français sont passés à HTTPS... pour le meilleur et pour le pire !

Passer votre WordPress en HTTPS en toute sécurité en faisant appel à mes services professionnels.

Ce tutoriel fait suite au meetup WP Bordeaux du 8 février 2018 qui avait réunit près de 40 personnes. Sur cet échantillon plutôt représentatif, pas une personne ayant basculé en HTTPS ne l’a fait de manière correcte. La plupart du temps les utilisateurs se sont arrêtés à l’activation du SSL côté hébergeur – OVH le fait nativement ce qui peut vous exposer à des situations de contenus dupliqués sur Google.

Ce tutoriel se veut également le plus complet sur la bonne méthode à adopter pour passer proprement un site de HTTP à HTTPS. La quasi-totalité des informations disponibles à ce sujet sont actuellement erronnées ou partiellement complètes alors même que les conséquences techniques peuvent être catastrophiques et notamment pour votre référencement.

Notez également que la méthode décrite ici est standardisée pour WordPress, elle ne repose pas sur une extension qui ferait le travail à votre place. Je déconseille fortement le recours à une extension pour réaliser ce type de manipulation et notamment pour des questions de performances.

À quoi sert un certificat SSL ?

C’est sans doute la question que l’on me pose le plus souvent dès lors qu’on évoque ce passage à HTTPS. Nous pouvons dénombrer 3 raisons majeures : la sécurité, le référencement et les prérequis techniques pour WordPress.

Le certificat SSL renforce votre sécurité

Un certificat SSL est ni plus ni moins qu’un fichier de données qui active le protocole HTTPS sur un serveur. Ce protocole assure une connexion sécurisée en chiffrant les échanges entre l’internaute et le serveur. Par exemple, sur votre page de connexion au back-office, un site classique sans chiffrage expose le mot de passe en clair sur le réseau Internet. Vous comprenez dès lors l’importance d’un tel passage en matière de sécurité.

Tous les certificats disposent d’un niveau de sécurité satisfaisant, la différence entre un certificat gratuit et payant est lié aux questions d’assurance (utile pour les sites e-commerce) et à la réputation délivrée par ces derniers.

La présence d’un certificat SSL améliore indirectement votre référencement

C’est également une recommendation officielle de la part de Google qui affiche désormais un avertissement dans son navigateur Chrome pour les sites non sécurisés. Disposer d’un site en HTTPS n’améliore pas directement le référencement mais la perception générale que peuvent en avoir vos visiteurs avec la présence d’un cadenas au niveau de la barre d’adresse du navigateur.

WordPress a besoin d’un certificat SSL

La présence d’un certificat SSL constitue un prérequis technique au bon fonctionnement de WordPress. À terme, vous ne pourrez plus utiliser WordPress sans cette technologie alors autant y passer sans tarder.

Pour en savoir plus, nous vous recommandons la lecture de cet article sur l’intérêt de disposer d’un certificat SSL et comment le choisir.

Quelles étapes pour passer en HTTPS ?

Après la théorie, place à la pratique !

Toutes les étapes décrites ci-desssous sont obligatoires, aucune n’est facultative. Il faut compter environ une heure de travail pour les mener à bien en étant à l’aise avec la technique.

1 – Sauvegarder votre base de données

Avant même d’aller plus loin, il est fortement recommandé d’effectuer une sauvegarde de votre base de données MySQL ou MariaDB. Elle sera nécessaire en cas de restauration.

2 – Déployer un certificat SSL

Rendez-vous chez votre hébergeur qui vous mettra à disposition un certificat gratuit de type Let’s Encrypt. Pour un site e-commerce, je préconise l’achat d’un certificat qui embarquera une assurance et une durée de vie d’au moins un an – les certificats Let’s Encrypt se renouvelle automatiquement tous les 3 mois.

En règle générale, la génération d’un SSL gratuit s’opère par simple clic. Vérifiez que ce dernier n’est pas déjà actif comme c’est le cas chez OVH qui active Let’s Encrypt et donc le HTTPS sur tous les sites. Cela peut avoir pour conséquence de dupliquer votre site sur les moteurs de recherche si vous ne procédez pas aux étapes qui suivent. Un cas d’école constaté à maintes reprises lors d’audits de sites WordPress que je réalise régulièrement.

Une fois le certificat actif, saisissez l’URL de votre site dans votre navigateur favori en ajoutant https:// juste devant le nom de domaine. Un cadenas vert devrait s’afficher, il est probable qu’il soit jaune en présence de contenu mixte ce que nous verrons par la suite.

3 – Rediriger le trafic vers HTTPS

Pour l’instant, nous avons donc un site accessible de 2 façons : en HTTP ou en HTTPS. Il nous faut conserver une seule variante de sorte que les visiteurs et les robots de Google soient orientés vers la bonne version sécurisée.

Nous allons avoir recours aux traditionnels redirections de type 301, celles qui permettent d’indiquer de manière seo-friendly l’URL permanente d’un nouveau contenu. Il va de soi que nous n’allons pas poser autant de 301 qu’il y a de contenus sur votre site, ce serait interminable et contre-productif.

Ouvrez simplement votre fichier .htaccess et ajoutez les lignes suivantes :

# BEGIN Redirect HTTP to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://wpchannel.com/$1 [R=301,L]
</IfModule>
# END Redirect HTTP to HTTPS

Prenez soin de remplacer le nom de domaine par le vôtre. Il existe une alternative pour détecter automatiquement le domaine mais il me semble plus fiable et performant de l’indiquer directement.

Retournez à présent dans votre navigateur Web et actualisez la page : vous serez redirigée automatiquement vers la version HTTPS. Ceci est valable pour l’ensemble des URLS de ce domaine, faites donc le test en ouvrant une page de votre site. Remplacez le https:// par http:// et constatez la redirection vers l’équivalent HTTPS. Magique non ?

Grâce à cette technique, il ne faudra que quelques heures à Google et aux moteurs de recherche pour mettre à jour son index.

4 – Réécrire les URLS en base de données

WordPress stocke les URLS présentes dans vos contenus en chemin absolu. En termes clairs, si vous faites un lien dans le corps de texte d’une page vers une autre page, l’URL du lien est entière. Il nous faut donc les modifier en masse de sorte que http:// soit remplacé par https:// à l’aide d’un script spécialisé comme Search Replace DataBase.

Les techniques manuelles consistant à rechercher / remplacer les URLS directement dans un éditeur de code sont à proscrire car vous ne pouvez gérer les données sérialisées. Ce type de données sont très utilisées dans les constructeurs de pages par exemple.

Ce script gratuit est généralement utilisé pour modifier l’adresse d’un site et trouve aussi son utilité pour le passage à HTTPS.

Téléchargez-le à l’aide du lien ci-dessous, décompressez l’archive puis envoyez le dossier à la racine Web de votre serveur :

Search Replace DataBase

Ce script a été conçu pour faciliter le processus de migration des sites Web basés sur PHP et MySQL. Il a des fonctionnalités supplémentaires pour WordPress et Drupal mais fonctionne pour la plupart des autres CMS similaires.

Taille : 95,3 Ko  • Hits : 132

Exécutez le script dans le navigateur en saisissant le nom du dossier à la suite de votre domaine. Pour ma part, je l’ai nommé srdb ce qui donne example.com/srdb pour atteindre la page du script.

Dans le champ replace, saisissez l’URL sous la forme http://example.com et https://example.com dans le champ with. Rappelez-vous la chose suivante : nous remplaçons uniquement la partie qui change. Il n’y a donc pas à se poser la question de la présence ou non d’un slash à la fin.

Cliquez ensuite sur dry run pour effectuer un test. Une liste d’éléments sera alors disponible table par table vous permettant de vérifier que tout fonctionne parfaitement.

Si les tests sont concluants, faites donc un live run puis procéder aux remplacements. Une fois les changements opérés, cliquez sur delete me pour supprimer le script du serveur ou faites le manuellement à l’aide de votre client FTP favori. Il ne faut jamais laisser ce genre de script sur votre serveur par mesure de sécurité.

Cette étape devrait régler la quasi-totalité des problématiques de contenus mixtes dans vos pages.

5 – Modifier le fichier wp-config.php

Ce fichier de configuration est généré lors de l’installation de votre WordPress. Il relie votre installation à votre base de données mais offre de nombreuses autres options de configuration.

Nous allons y ajouter la ligne suivante qui force l’usage de HTTPS en back-office :

define ('FORCE_SSL_ADMIN' , true);

Vérifiez également que les URLS d’installation ne sont pas spécifiées en dur dans ce fichier. Cette technique offre l’avantage de bloquer ce réglage en back-office et évite une erreur de manipulation qui serait liée à un changement accidentel d’URL. Voici un exemple pour ce site :

/** Définir l'URL par défaut */
define('WP_HOME', 'https://wpchannel.com');
define('WP_SITEURL', 'https://wpchannel.com');

6 – Vérifier la présence de contenus mixtes

Cette étape est sans doute la plus compliquée car elle requiert des compétences en développement Web pour WordPress. Certaines pages de votre site vont probablement combinées des URLS en HTTP et d’autres HTTPS et ce, malgré la réécriture opérée en base. C’est souvent le cas pour des URLS saisies en dur dans le code d’un thème, d’une extension ou d’un mu-plugins. En théorie, cela ne devrait pas être le cas dans un monde parfait où les développements sont bien faits.

Pour identifier de tels cas, parcourez les pages principales de votre site qui utilise des gabarits différents c’est-à-dire faisant appel à des fichiers PHP différents du thème. Si le cadenas vert devient jaune comme c’est le cas sous Firefox, cela signifie que certaines ressources se chargent encore en HTTP. Une petite recherche dans le code source ou via l’onglet Médias dans la fenêtre des Informations sur la page vous donnera les URLS fautives.

7 – Modifier les propriétés Google Analytics

Pour chacune de vos propriétés et de vos vues Google Analytics, vous devrez modifier HTTP par HTTPS dans les listes déroulantes prévues à cet effet comme celle-ci :

8 – Ajouter les propriétés Google Search Console

À l’instar des deux propriétés en HTTP qui devraient être prêtes déjà présentes, vous devriez ajouter https://example.com et https://www.example.com et indiquez à Google votre version préférée. De cette manière, il n’y aura qu’une variante visible dans les résultats de recherche.

Vous pouvez ensuite configurer ces nouvelles propriétés en procédant notamment à l’envoi des nouveaux sitemaps à Google. Cela reste néanmoins facultatif car un site bien construit et déjà optimisé sera rapidement mis à jour dans les résultats de recherche.

9 – Modifier le fichier robots.txt

Le fichier robots.txt, présent à la racine de tous les sites développés sous WordPress, contient des instructions relatives à l’indexation par les moteurs de recherche. Si vous utilisez SEOPress PRO, vous pouvez le modifier directement depuis votre back-office. Pensez donc à mettre à jour l’URL du plan de site que l’on insère souvent en première ligne.

10 – Mettre à jour les liens entrants

Il va de soi que vous ne pourrez contacter chaque webmaster un par un pour lui demander de mettre à jour les liens entrants – les fameux backlinks, pour les passer en HTTPS. Néanmoins, vous avez la main sur vos différents profils de réseaux sociaux (Facebook, LinkedIn, Instagram, etc.) ou encore Google My Business.

Quels outils pour vérifier la qualité de votre certificat SSL ?

De nombreux outils sont disponibles pour vérifier la bonne en mise en place d’un certificat SSL.

Avec du Let’s Encrypt, le déploiement est assuré par votre hébergeur si bien que vous ne devriez pas rencontrer de problèmes. Sur du certificat payant, c’est une toute autre histoire et il faudra bien s’assurer que tout est ok.

Je vous conseille donc de tester vos sites avec SSL Labs ou encore SSL Checker.

Pour les utilisateurs avancés, vous pouvez également vérifier le niveau de séucrité de vos en-têtes à l’aide Security Headers. Quelques optimisations dans votre fichier .htaccess vous donneront la note de A mais attention à ne pas tout casser !

En résumé, le passage à HTTPS n’est plus une option mais une nécessité pour bien des aspects. N’attendez plus et prenez contact si vous recherchez un partenaire technique pour mener à bien cette opération.

6 commentaires
  1. Bonjour,

    J’ai fait :
    – redirection htaccess ;
    – réécrire les URLS en base de données avec srdb ;
    – modifier le fichier wp-config.php.

    Et catastrophe, mon site ne se charge plus ! Vous avez une piste à me donner pour récupérer mon site ?

    1. Aurélien Denis auteur de l’article

      Bonjour,

      si l’ensemble des étapes ont été scrupuleusement suivies, il ne doit pas y avoir de soucis. On peut toujours corriger une situation bloquante, je vous invite à prendre contact par mail en spécifiant l’URL de votre site. Je pourrais vous adresser un devis d’intervention.

    1. Aurélien Denis auteur de l’article

      Bonjour, bien vu mais je n’utilise pas la version 3W donc du moment qu’elle redirige bien ça passe. Je me demande si cela peut être optimisé d’ailleurs.

  2. Aurélien

    Salut,
    personnellement, je travaille avec des clients sous WordPress, je les invite simplement à modifier les 2 urls dans le tableau de bord (dans Réglages puis général) et basta, c’est WordPress qui de toute manière redirigera le visiteur à l’url enregistrée dans cette page, et donc dans la BDD (wp_options).
    Même si effectivement la redirection htaccess est une bonne solution, celle que je suggère est plus facile pour les gens n’y connaissant rien.

    1. Aurélien Denis auteur de l’article

      Bonjour, la manipulation que vous préconisez n’est hélas pas complète. Elle n’est pas viable et laisse des URLS non modifiées en base de données.

Laisser un commentaire