Comment éviter les contenus non sécurisé avec WordPress et un reverse proxy

Si comme moi, vous utilisez un reverse proxy comme Haproxy ou Nginx, le cadenas wordpress n’apparaît plus en vert à cause du contenu mixte.
Le contenu mixte, c’est des ressources de la page web qui sont chargé via le protocole http alors que la page avait initialement été chargée via le protocole https
Pour y remédier, c’est très simple :

WordPress dans sa détection du http utilise la variable suivante :
$_SERVER['HTTPS']
Problème dans le cas d’une utilisation avec un reverse proxy : cette variable est vide
Pour savoir par quelle protocole la page a été chargée, il existe une autre variable utilisée dans ce cas :
$_SERVER['HTTP_X_FORWARDED_PROTO']

Donc, le but est de vérifier la valeur de cette variable et modifier la première en conséquence.
Voici le code a ajouter au fichier « wp-config.php » juste au dessus de la ligne « /* That’s all, stop editing! Happy blogging. */ »
/* Force detect ssl with reverse proxy */
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';

Sauvegarder le fichier et cela fonctionne 😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *