# Résolution des avertissements de contenu mixte après l'activation de HTTPS

Source: https://support.kapsulehost.com/fr-fr/ssl-mixed-content

## Qu'est-ce que le contenu mixte

Un navigateur ne traite une page comme sécurisée que si la page et tout ce qu'elle charge proviennent d'HTTPS. Si une page HTTPS récupère une image, un script, une feuille de style, une police ou une iframe à partir d'une adresse `http://`, le navigateur le signale.

Les navigateurs divisent cela en deux catégories, et elles se comportent très différemment :

- **Contenu mixte actif** : scripts, feuilles de style, iframes et XHR. Les navigateurs les bloquent directement. Les mises en page s'effondrent, les curseurs cessent de fonctionner, les formulaires cessent d'être soumis. C'est la variété destructrice.
- **Contenu mixte passif** : images, audio et vidéo. Ces éléments se chargent généralement toujours, mais le cadenas est rétrogradé ou supprimé.

Un site peut donc sembler complètement correct et perdre quand même son cadenas, ou sembler cassé sans erreur évidente dans la page elle-même.

## Pourquoi cela se produit après l'activation d'SSL

L'activation d'SSL change la façon dont votre site est servi. Elle ne change pas ce qui est stocké dedans.

WordPress écrit des URL absolues dans la base de données, donc un site qui a fonctionné sur HTTP pendant un certain temps a des adresses `http://` sauvegardées dans :

- Contenu des articles et des pages, y compris chaque image insérée via l'éditeur.
- Enregistrements des pièces jointes média.
- Paramètres du customiseur de thème et options de thème.
- Contenu des widgets et paramètres des blocs.
- Paramètres des plugins, notamment les générateurs de pages et les plugins de curseur.
- Les options `siteurl` et `home`.

Aucun de ces éléments ne se met à jour automatiquement. Activer SSL et ensuite se demander pourquoi le cadenas est cassé est l'une des questions d'assistance les plus courantes, et c'est pourquoi.

## Étape 1 : Forcer HTTPS au serveur

Avant de toucher à la base de données, assurez-vous que chaque visiteur arrive sur HTTPS en premier lieu.

1. Connectez-vous à [KPanel](https://kpanel.kapsulehost.com) et cliquez sur **Websites** dans la barre latérale de gauche.
2. Cliquez sur votre site.
3. Ouvrez **Settings**.
4. Sous **Behavior**, activez **Forcer HTTPS**.
5. Cliquez sur **Enregistrer les modifications**.

![Le paramètre Forcer HTTPS sous Behavior sur la page Settings d'un site dans KPanel](https://support.kapsulehost.com/help/screenshots/ssl-mixed-content.6758a2bb.webp)

Chaque requête HTTP est maintenant redirigée vers HTTPS au serveur, avant que votre site ne s'exécute.

> **Note:** Forcer HTTPS gère les requêtes entrantes. Elle ne réécrit pas les URL déjà stockées dans votre base de données, donc à elle seule, elle n'effacera pas un avertissement de contenu mixte causé par une image `http://` codée en dur. Vous avez besoin à la fois de cette étape et de l'étape 2.

Si SSL n'est pas encore actif, ou si le certificat semble incorrect, commencez par [Certificats SSL](https://support.kapsulehost.com/fr-fr/ssl-certificates).

## Étape 2 : Réécrire les URL stockées

C'est la correction qui résout réellement le contenu mixte.

1. Ouvrez le site, puis l'onglet **WordPress**, puis la section **Actions rapides**.
2. Trouvez la carte **Rechercher et remplacer** et cliquez sur **Configure**.
3. Dans **Chercher (ancienne valeur)** entrez `http://yourdomain.co.nz`.
4. Dans **Remplacer par** entrez `https://yourdomain.co.nz`.
5. Laissez **Simulation (aperçu uniquement, aucune modification)** coché et cliquez sur **Preview**.
6. Passez en revue le nombre et la répartition par tableau.
7. Décochez **Simulation**, cliquez sur **Run**, et confirmez.

Une sauvegarde complète est effectuée automatiquement avant le remplacement, et chaque tableau est couvert, y compris ceux créés par des plugins. Les paramètres des plugins sérialisés sont traités correctement.

> **Warning:** Ne faites pas cela avec une requête SQL dans phpMyAdmin. WordPress stocke les paramètres des plugins et des thèmes sous forme de chaînes sérialisées qui enregistrent la longueur de chaque valeur, donc une `REPLACE()` brute les casse et les paramètres se réinitialisent silencieusement à vide. Il n'y a pas de réparation autre que la restauration d'une sauvegarde. L'explication complète se trouve dans [Exécuter une recherche et remplacer](https://support.kapsulehost.com/fr-fr/wordpress-search-replace).

Si votre plan inclut la console, la commande équivalente est :

```
search-replace 'http://yourdomain.co.nz' 'https://yourdomain.co.nz' --all-tables --dry-run
```

Déposez `--dry-run` pour l'appliquer, et faites d'abord une sauvegarde vous-même : la console ne le fait pas.

## Étape 3 : Vider tous les caches

Une copie mise en cache d'une page continuera à servir les anciennes URL HTTP longtemps après que la base de données soit corrigée, ce qui explique pourquoi les gens pensent souvent que le remplacement n'a pas fonctionné.

1. **WordPress**, puis **Actions rapides**, puis **Vider le cache**.
2. **WordPress**, puis **Caching**, puis **Purger le cache**, si le cache de page complète est activé.
3. **Performance**, puis **Kapsule CDN**, puis **Purge**, si le CDN est activé. Consultez [Purging the CDN Cache](https://support.kapsulehost.com/fr-fr/cdn-cache-purge).
4. N'importe quel plugin de mise en cache, à partir de son propre écran de paramètres.
5. Votre propre navigateur. Testez dans une fenêtre privée pour ne pas être trompé par votre propre cache.

## Étape 4 : Trouver ce qui reste

La plupart des sites sont propres après l'étape 2. Quand un avertissement subsiste, trouvez la ressource exacte plutôt que de deviner.

**Console du navigateur.** Ouvrez les outils de développement avec F12, accédez à l'onglet **Console**, et rechargez. Le contenu mixte apparaît comme un avertissement explicite indiquant l'URL complète de la ressource offensante. Cette URL vous indique quel plugin ou thème en est responsable.

**Onglet Réseau.** Filtrez par `http://` pour lister chaque requête non sécurisée que la page a effectuée.

**Source de la page.** Chargez la page, affichez la source, et recherchez `http://`. Ignorez tout ce qui se trouve dans les attributs `xmlns` et les déclarations de schéma : ce sont des identificateurs, pas des requêtes.

Les survivants courants et quoi faire pour chacun :

| Ce que vous trouvez | Correction |
|---|---|
| Une image ou un logo dans un paramètre de customiseur de thème | Réuploadez-le ou resélectionnez-le dans le customiseur |
| Un module de générateur de pages avec une URL d'image `http://` saisi | Éditez ce module et corrigez l'URL |
| Tableau des paramètres propres d'un plugin de curseur | Réenregistrez le curseur, ou exécutez la recherche et remplacez avec `--all-tables` |
| Une police ou un script d'un domaine tiers | Vérifiez si le fournisseur offre HTTPS. La plupart le font maintenant. Changez l'URL |
| Un pixel de suivi ou une intégration d'un ancien fournisseur | Si le fournisseur n'a pas HTTPS, supprimez-le. C'est une dépendance rompue, pas un problème KapsuleHost |
| `http://` codé en dur dans un fichier modèle de thème | Éditez le modèle, ou mieux, utilisez `https` ou une référence relative au protocole |

> **Tip:** Si exactement une page est affectée et le reste du site est propre, le coupable est le contenu de cette page, pas un paramètre à l'échelle du site. Ouvrez-la dans l'éditeur et regardez le média qu'elle intègre.

## Confirmer que c'est corrigé

1. Chargez le site dans une fenêtre privée.
2. Le cadenas devrait être solide, sans triangle d'avertissement et sans indication barrée.
3. Cliquez sur le cadenas. Le navigateur signale que la connexion est sécurisée sans avertissement de contenu mixte.
4. Ouvrez la console et rechargez une fois de plus. Zéro avertissement de contenu mixte.
5. Vérifiez une page profonde, pas seulement la page d'accueil : une page intérieure, un article de blog avec images, et le paiement sur un magasin.

## Prévenir son retour

- **Laissez Forcer HTTPS activé.** C'est un paramètre d'une seule ligne qui élimine toute une classe de problèmes.
- **Ne tapez jamais une URL complète `http://` dans le contenu.** Utilisez la médiathèque, qui stocke maintenant des adresses HTTPS.
- **Vérifiez les paramètres des plugins après l'installation de quoi que ce soit** qui demande une URL.
- **Attention à un avertissement qui revient après une mise à jour d'un plugin.** Certains plugins réinitialisent leurs propres URL stockées.
- **Réexécutez la recherche et remplacez après n'importe quelle migration**, car une base de données importée apporte les URL de l'ancien hôte avec elle : [Migrating a Website From cPanel](https://support.kapsulehost.com/fr-fr/sites-migrate-cpanel).

## Dépannage

**Le cadenas est bon pour moi, cassé pour un collègue.** Page mise en cache. Demandez-leur de recharger dans une fenêtre privée.

**Le site s'est complètement cassé après le remplacement.** Restaurez la sauvegarde de pré-exécution automatique : [Restoring From a Backup](https://support.kapsulehost.com/fr-fr/restoring-from-backup).

**La console affiche un avertissement de contenu mixte sur un domaine qui n'est pas le mien.** Une ressource tierce. Vous ne pouvez pas corriger leur serveur : soit ils supportent HTTPS et vous changez l'URL, soit vous supprimez la ressource.

**Tout est HTTPS mais le site ne se chargera pas du tout.** Ce n'est pas du contenu mixte. Commencez par [Website Not Loading](https://support.kapsulehost.com/fr-fr/website-not-loading) et vérifiez le certificat sur [SSL Certificates](https://support.kapsulehost.com/fr-fr/ssl-certificates).

Si vous avez tout parcouru et l'avertissement persiste, envoyez un e-mail à [support@kapsulehost.com](mailto:support@kapsulehost.com) avec l'URL affectée et le texte exact de l'avertissement de la console du navigateur.
