Tags pour la question fréquent:
PHP SSL Wordpress

Aidez-nous par évaluer cet article

Score de 4, basé sur 3 votes

Utiliser Wordpress avec HTTPS sur la plate-forme d'hébergement Kinamo

Dernière mise à jour: 21/08/2017

Cet article vous explique comment il faut utiliser un certificat SSL sur la plateforme hébergement Kinamo. La plateforme d'hébergement utilise des serveur d'équilibrage HAProxy et SSL offloading. Il faut donc faire des petits changements au niveau de votre config Wordpress pour que le site analyse le traffic encypté avec succès.

Pour être sûr que Wordpress ne donne pas des erreurs pour chaque élément qui n'est pas bien envoyer par HTTPS il faut enforcer que SSL est utilisé pour votre site Wordpress. C'est facile, par ajouter une règle dans le fichier wp-config.php:

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';

En plus il faut modifier le capture des adresses IP de vos visiteurs. Si vous ne faites pas ce changement, il semble que tous les commentaires / posts par les visiteurs arrivent par le même adresse IP, celui du serveur d'équilibrage. Ajouter le contenu suivant dans le fichier wp-config.php:

if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_X_FORWARDED_FOR"];
}

Ce règle vous garanti que l'adresse IP du forward est utilisé (celui du client) et pas celui de nos serveurs HAproxy.

Pour finaliser, il faut aussi modifier le fichier .htaccess de votre site Wordpress. Par ajouter les règles suivants vous êtes assuré que la détection de votre adresse principal marche bien et vous n'êtes pas jeté dans un loop infini:

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

</IfModule>

(Un grand merci de Joachim de Nice & Robust!)

Finalement il faut modifier les pointes vers les adresses HTTP (hardcoded) vers des adresses HTTPS. Wordpress typiquement sauvegarde tous comme images avec un lien absolu dans la base de données. Une solution est d'utilise rle plugin Wordpress SSL Insecure Content Fixer plugin. Ce plugin remplacerai tous les liens avec le variante en HTTPS.
Comme alternatif, vous pouvez faire les remplacements dans la base de données par un import/export de SQL.