Ce travail sur Wordpress a été rendu possible grâce au soutien d'Ikoula.

Je continue ma série sur la sécurisation WordPress et aujourd'hui, je vais vous parler de HTTPS.

Si votre serveur est configuré pour proposer du HTTP et du HTTPS, il est possible de forcer l'utilisation du SSL pour la page de login afin d'éviter les connexions en clair.

Cela aura pour effet de chiffrer l'ensemble des données entre votre ordinateur et le serveur et ainsi rendre plus complexes les attaques de type Man-In-The-Middle.

Pour cela, rien de plus simple, il faut éditer le fichier wp-config.php et y ajouter la ligne suivante si vous souhaitez utiliser SSL uniquement sur la page de login :

define('FORCE_SSL_LOGIN', true);

ou utiliser SSL pour l'intégralité de la section admin du site :

define('FORCE_SSL_ADMIN', true);

Vous pouvez aussi utiliser un plugin comme celui-ci, si vous n'êtes pas à l'aise avec les fichiers de conf.

Si lors de vos tests, vous constater que votre section admin part dans une espèce de boucle infinie, c'est probablement parce que vous utilisez un reverse proxy tel que nginx et que celui-ci communique avec Apache en HTTP simple. Pour régler le problème, toujours dans le fichier wp-config.php, ajoutez les lignes suivantes :

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
       $_SERVER['HTTPS']='on';

Et côté Nginx, pensez à ajouter dans la config de ce dernier :

location / { ...
proxy_set_header X-Forwarded_Proto https;
...
}

ou proxy_set_header X-Forwarded-Proto $scheme;

Et voilà... Normalement, tout devrait rouler et votre admin devrait passer en HTTPS.

Dans la série, Sécuriser WordPress :