HTTPS a endommagé votre site? Résoudre le problème des avertissements de contenu mixte

Vous avez donc fait ce qu’il fallait. Vous avez obtenu ce certificat SSL brillant, imposé le protocole HTTPS, et votre site WordPress affiche désormais le cadenas rassurant dans la barre du navigateur. Ou peut-être pas?

Au lieu de cela, vous voyez un sinistre avertissement « Non sécurisé » ou un cadenas brisé. Dans votre console, une avalanche d’erreurs rouges vous signale un « contenu mixte ». Vos scripts échouent, vos styles sont cassés et vos images ne se chargent pas. La panique s’installe.

Respirez. Il s’agit d’un passage obligé. Presque tout le monde rencontre des avertissements de contenu mixte après une migration HTTPS. Cela signifie que votre site tente de se charger de manière sécurisée, mais que certains éléments (images, scripts, feuilles de style) sont toujours appelés via l’ancien protocole HTTP non sécurisé. Les navigateurs bloquent ces éléments afin de protéger les utilisateurs, ce qui perturbe le fonctionnement de votre site.

Ce n’est pas une catastrophe. C’est un travail de nettoyage. Voici votre guide complet, étape par étape, pour éradiquer le problème.

Phase 1 : Le diagnostic – Trouver les coupables

On ne peut pas réparer ce qu’on ne voit pas. Nous devons localiser toutes les requêtes non sécurisées.

La méthode de la console du navigateur (rapide et directe) :

  1. Accédez à votre page endommagée.
  2. Ouvrez les outils de développement : cliquez avec le bouton droit de la souris, sélectionnez « Inspecter » ou appuyez sur F12.
  3. Cliquez sur l’onglet « Console ». Vous verrez apparaître une liste d’erreurs. Toutes celles qui mentionnent « contenu mixte bloqué » ou « HTTP » sont vos cibles. Notez les URL des fichiers (par exemple, http://yourdomain.com/wp-content/plugins/old-plugin/js/script.js).

La méthode du scanner en ligne (complète) :

Rendez-vous sur whynopadlock.com. Entrez votre URL. Le site analysera votre site et produira un rapport détaillé de toutes les ressources non sécurisées. Il s’agit là de votre liste cible.

Phase 2 : La solution – Quatre vecteurs d’attaque, un seul objectif

L’objectif est simple : remplacer http:// par https:// pour toutes les ressources. La manière de procéder dépend de l’endroit où le lien incorrect est codé en dur.

1. Mettez à jour votre adresse WordPress (la première étape cruciale)

Cela semble évident, mais c’est souvent négligé. Connectez-vous à votre tableau de bord WordPress (vous devrez peut-être utiliser directement l’URL HTTPS si le site est en panne).
Allez dans Paramètres > Général. Assurez-vous que l’adresse WordPress (URL) et l’adresse du site (URL) commencent toutes deux par https://. Enregistrez. C’est la pierre angulaire.

2. Effectuer une recherche et un remplacement dans la base de données (l’option radicale)

C’est l’étape la plus efficace. Les anciens liens HTTP sont stockés dans votre base de données, dans les articles, les pages, les options de thème et le contenu des widgets.

AVERTISSEMENT : Sauvegardez toujours, toujours votre base de données au préalable. Utilisez votre panneau de contrôle d’hébergement, un plugin tel que UpdraftPlus, ou demandez à votre hébergeur de le faire.

L’outil des professionnels : WP-CLI
Si vous avez accès à la ligne de commande, cette commande unique permet souvent de résoudre le problème :

bash

wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --all-tables --precise

Le plugin fiable : Better Search Replace
Pour la plupart des utilisateurs, ce plugin est la solution la plus sûre.

  1. Installez et activez Better Search Replace.
  2. Allez dans Outils > Better Search Replace.
  3. Dans le champ « Rechercher », entrez votre ancienne adresse : http://yourdomain.com
  4. Dans le champ « Remplacer par », entrez votre nouvelle adresse : https://yourdomain.com
  5. Sélectionnez toutes les tables de la liste.
  6. Cochez d’abord la case « Exécuter en mode test ? ». Cela vous permet de voir ce qui sera modifié sans le faire.
  7. Vérifiez le test. Si tout semble correct, décochez « Mode test » et relancez l’opération.

3. Forcer le protocole HTTPS avec .htaccess (The Enforcer)

Parfois, des scripts tiers ou des thèmes/plugins mal codés tentent encore de se charger via HTTP. Vous pouvez les forcer à utiliser le protocole HTTPS en ajoutant ceci à votre fichier .htaccess (au-dessus de la ligne # BEGIN WordPress) :

apache

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

Cela effectue une redirection permanente 301 de HTTP vers HTTPS pour toutes les requêtes. C’est une solution très efficace.

4. Traitez les fichiers de plugins et de thèmes récalcitrants

Après avoir suivi les étapes ci-dessus, utilisez à nouveau votre scanner. Si certains fichiers spécifiques d’un plugin ou d’un thème continuent de provoquer des erreurs, il se peut que le développeur ait codé en dur des URL HTTP.

  • Mettez tout à jour : assurez-vous que tous les plugins et votre thème sont à jour. Les développeurs ajoutent souvent la prise en charge HTTPS dans les nouvelles versions.
  • Contactez le support technique : signalez le problème au développeur du thème/plugin en indiquant l’erreur exacte. Un bon développeur vous fournira une solution.
  • Dernier recours (pour les développeurs) : si vous êtes à l’aise avec le code, vous pouvez parfois résoudre le problème en mettant correctement en file d’attente les scripts dans le fichier functions.php d’un thème enfant, forçant ainsi la version HTTPS.

Phase 3 : Vérification et durcissement final

  1. Effacer tous les caches : le cache de votre navigateur, votre plugin de mise en cache WordPress (comme W3 Total Cache, WP Rocket) et le cache de votre serveur ou CDN (comme Cloudflare). Les caches adorent conserver les anciennes versions HTTP.
  2. Vérifiez chaque type de page : ne vérifiez pas seulement la page d’accueil. Visitez un article de blog, une page, la boutique, le formulaire de contact. Testez dans une fenêtre de navigation privée.
  3. Implémenter HSTS (avancé) : une fois que vous êtes sûr à 100 % que tout fonctionne sur HTTPS, envisagez d’ajouter un en-tête HSTS. Cela indique aux navigateurs d’utiliser uniquement HTTPS pour votre site pendant une longue période, empêchant ainsi les attaques par déclassement de protocole. Vous pouvez souvent l’ajouter dans votre panneau de contrôle d’hébergement ou via .htaccess (avec prudence).
  4. Mettre à jour les services externes : modifiez l’URL de votre site dans Google Search Console, Google Analytics et tout autre outil externe qui envoie une requête ping à votre site.

La période de surveillance d’une semaine

Considérez le site comme « fragile » pendant une semaine après ce correctif. Surveillez votre console pour toute nouvelle erreur. Parfois, des images chargées paresseusement ou du contenu chargé dynamiquement à partir de curseurs révèlent des coupables cachés.

Un contenu mixte n’est pas un signe que vous avez fait quelque chose de mal. Il s’agit des inévitables débris laissés après le déplacement de l’ensemble de votre site vers une nouvelle fondation plus sécurisée. Ce guide est votre équipe de nettoyage. Suivez-le méthodiquement et ce cadenas deviendra vert pour de bon.

Ce billet vous a été utile?
Offrez-nous un café!
Tags: