Protéger l’administration WordPress par SSL

Protéger l'administration WordPress par SSL

Nous avons vu dans l’article précédent comment créer et configurer un certificat SSL reconnu pour sécuriser son site Web avec un accès par HTTPS.
Voyons cette fois comment utiliser ce certificat (ou pas) pour protéger l’interface d’administration WordPress de votre blog ou votre site.

Pourquoi protéger l’administration WordPress par SSL ?

Avec HTTP (donc sans SSL), les pages sont transmises entre votre navigateur et le serveur en clair, c’est-à-dire en tant que texte lisible par un humain.
C’est le cas du contenu des articles que vous préparez ou encore des identifiants et mot de passe que vous utilisez pour vous connecter.

Notez que pour lire ce flux, il faut déjà être un acteur du réseau par lequel transitent vos informations.

Quand vous êtes à la maison, ces acteurs sont votre fournisseur d’accès à internet et votre hébergeur. Ceux-ci n’iront en aucun cas récupérer vos informations.

Une fois sorti de chez vous, quand vous êtes connecté sur le réseau de votre employeur, du fast food, de l’hôtel, de la gare, …, c’est une autre histoire.
La plupart du temps, ces acteurs sont sérieux, ne tombez pas dans la paranoïa. Mais une petite protection en plus ne fait pas de mal.

Un moyen simple pour sécuriser le flux entre le navigateur et le serveur est de le crypter. Et WordPress permet d’activer facilement le cryptage des échanges avec l’interface d’administration par SSL.

Ce qui est protégé

WordPress permet d’activer la protection de deux façons.

D’une part, il est possible de protéger seulement la page d’identification. Dans ce cas, les identifiants et les mots de passe sont cryptés et ne peuvent plus être lus. Le reste, par exemple le contenu des articles de l’espace membre, ou les brouillons de ceux à venir, transitent toujours en texte lisible.

D’autre part, vous pouvez activer la protection de toute l’interface d’administration. Dans le cas d’un blog qui propose du contenu premium, cette méthode est idéale.

Retenez toutefois que le cryptage demande un peu plus de ressources au serveur pour traiter les pages. Je vous conseille donc de n’utiliser la deuxième solution que si vous en avez besoin.

Avec ou sans certificat ?

Il n’est pas obligatoire de se procurer un certificat reconnu chez un organisme qui en émet.

Sans cet reconnaissance, vous verrez le message suivant, vous pourrez alors cliquer sur ‘Je comprends les risques’ et ajouter l’exception.
Le certificat n’est pas reconnu par un organisme certificateur, mais la connexion par SSL est aussi efficace.

Administration WordPress par SSL : ajouter une exception dans Firefox
La connexion non certifiée dans Firefox
Si vous êtes le seul à vous connecter à l’interface, ce n’est pas très grave, vous saurez quoi faire.

En revanche, si votre site gère des membres qui peuvent se connecter, avec buddypress par exemple, les plus frileux peuvent être réticents à continuer et soit vous demander confirmation, soit, dans le pire des cas, ne pas revenir (ok, c’est un exemple extrême…).

C’est dans ce cas qu’intervient la mise en place d’un certificat SSL reconnu et gratuit décrit dans un précédent article.

Comment faire ?

Pour activer la protection automatique, il suffit d’éditer le fichier wp-config.php pour y ajouter ces lignes et ainsi activer SSL à l’identification seulement :

/* Activer SSL pour la page d'identification seulement */
define('FORCE_SSL_LOGIN', true);

Ou celles-ci pour protéger toute l’administration WordPress par SSL :

/* Activer SSL sur toute l'interface d'administration */
define('FORCE_SSL_ADMIN', true);

Ces lignes doivent être insérées juste avant :

/* C'est tout, ne touchez pas à ce qui suit ! Bon blogging ! */

Tout simplement !

Dès ce moment, toute utilisation de l’interface d’administration et/ou connexion, selon ce que vous aurez choisi, sera redirigée vers HTTPS automatiquement.

Le mot de la fin

C’est facile, c’est pas cher, et ça peut rapporter… de la tranquillité d’esprit, ce qui est déjà pas mal.

Si vous voulez plus de détails à propos de cette configuration, vous pouvez consulter la page dédiée sur le codex WordPress.

Cet article vous a été utile ? Partage it !

6 réflexions au sujet de « Protéger l’administration WordPress par SSL »

  1. Bonjour
    Si je comprends bien, seul ce mode opératoire suffit pour protéger en SSL ? Car vous dites « Il n’est pas obligatoire de se procurer un certificat reconnu chez un organisme qui en émet. »
    Donc si je me contente de mettre « define(‘FORCE_SSL_LOGIN’, true); » dans mon fichier de config, cela va suffire ?
    Pas besoin non plus de redirections .htacess comme je vois partout dans d’autres modes opératoire ?
    Merci

    1. Bonjour,
      En effet, il n’est pas obligatoire de posséder un certificat reconnu par un organisme certificateur.
      Votre serveur possède déjà un certificat, tout à fait utilisable en l’état.
      La seule différence est l’apparition d’un message d’avertissement.

      Aussi, la constante dans le fichier de configuration suffit, WordPress fait le reste. Avec nos versions récentes, il n’est plus nécessaire de modifier le fichier .htaccess.
      J’ai mis en place cette constante (et rien d’autres) depuis plusieurs mois maintenant, et je peux vous confirmer que tout fonctionne bien 🙂

      David

      1. Bonjour et merci pour votre réponse, mais je ne dois pas avoir de « bol » car :
        1ère option testée uniquement avec « define(‘FORCE_SSL_LOGIN’, true); »
        >> Là, il ne se passe rien de différent quant à l’accès à /wp-login.php, je suis toujours en HTTP

        2ème option testée avec « define(‘FORCE_SSL_ADMIN’, true); » là ok, je suis bien redirigé vers un https://www.monsite.com/wp-admin/ mais avec une jolie 404 :
        Not Found
        The requested URL /wp-admin/ was not found on this server

        🙁

        1. Quelle est votre version de WordPress et votre hébergeur ?

          Avez-vous bien défini la constante avant la ligne :
          require_once(ABSPATH . ‘wp-settings.php’);
          dans wp-config.ini ?

          1. Oui :

            define(‘FORCE_SSL_LOGIN’, true);
            /* C’est tout, ne touchez pas à ce qui suit ! Bon blogging ! */

            /** Chemin absolu vers le dossier de WordPress. */
            if ( !defined(‘ABSPATH’) )
            define(‘ABSPATH’, dirname(__FILE__) . ‘/’);

            je veux bien vous donner ces infos mais pas en public…

Laisser un commentaire

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

Si vous le souhaitez, renseignez le champ 'Nom' de cette façon : 'VotreNom@VotreMotClef' pour obtenir une ancre optimisée pour les moteurs de recherche.