Sécuriser un site WordPress

Pour sécuriser un site WordPress, il faut changer le HTTP par un HTTPS. Qu’est-ce que le HTTPS ?

L’HyperText Transfer Protocol Secure, plus connu sous l’abréviation HTTPS — littéralement « protocole de transfert hypertexte sécurisé » — est la combinaison du HTTP avec une couche de chiffrement comme SSL ou TLS.

HTTPS permet au visiteur de vérifier l’identité du site web auquel il accède, grâce à un certificat d’authentification émis par une autorité tierce, réputée fiable (et faisant généralement partie de la liste blanche des navigateurs internet). Il garantit théoriquement la confidentialité et l’intégrité des données envoyées par l’utilisateur (notamment des informations entrées dans les formulaires) et reçues du serveur. Il peut permettre de valider l’identité du visiteur, si celui-ci utilise également un certificat d’authentification client.

– Un extrait de Wikipedia

Je présente ci-dessous la méthode que j’ai apprise durant ma formation.

1. Obtenir un certificat SSL auprès de son hébergeur de site.

L’hébergeur de site que j’ai choisi est o2switch. Sur le cPanel, il est possible d’installer un certificat SSL gratuit délivré par l’autorité de certificat Let’s Encrypt, avec l’outil let’s encrypt SSL. Pour activer un certificat Let’s Encrypt,  il faut se rendre dans l’outil Let’s Encrypt SSL du cPanel d’o2switch puis cliquer sur le lien Générer en face du domaine sur lequel nous souhaitons installer le certificat.

Première étape de l’activation d’un certificat let’s encrypt : sélection du domaine

Ensuite il faut cocher l’ensemble des domaines qui devront être inclus dans le certificat généré.

Activation du certificat SSL sur un ou plusieurs domaines

Si tout se passe bien, un message apparaît indiquant que le certificat SSL à bien été installé.

Le site répond correctement en HTTPS, le certificat est bien détecté par le navigateur en HTTPS.

Certificat Let’s Encrypt actif

 

2. Changer tous les liens avec Search and Replace db.

Le passage du HTTP au HTTPS ne permet pas de changer tous les liens internes au site. Au lieu de changer manuellement les liens uns par uns depuis le PhpMyAdmin, il existe l’outil Search and Replace db (SRDB) qui facilite grandement le changements des liens du site. Voici toutes les étapes de son utilisation :

Etape 1 : télécharger et envoyer SRDB sur le FTP (Filezilla)

Cliquez sur l’icône ZIP ci-après pour télécharger la dernière version de SRDB. Une fois téléchargé, décompressez-le et envoyez le dossier complet à la racine de votre site (à côté du dossier /wp-admin/, /wp-content/ et /wp-include/), de façon à ce que cet outil soit accessible par un lien du type http://www.votredomaine.com/Search-Replace-DB-master/.

Etape 2 : entrer les URLS et simuler les changements

Une fois le bouton « Dry run » cliqué, l’outil va rechercher la présence d’anciennes URLs et afficher les tables dans lesquelles elle se trouvent :

Nous voyons donc qu’il y a de nombreuses URLs à corriger.

Etape 2.2 : effectuer les changements définitivement

Au lieu de simuler les changements, maintenant que nous savons qu’il y a de nombreuses URLs à changer, nous allons effectuer ces changements définitivement. Pour cela, il faut cliquer sur le bouton « Live run ».

Ces mêmes URLs détectées plus tôt sont de nouveau détectées, et sont, cette fois-ci, entièrement mises à jour pour la nouvelle URL.

Etape finale : supprimer et purger le cache varnish

Maintenant que tout est modifié, on peut supprimer cet outil en cliquant simplement sur le bouton « Delete » qui se trouve en bas de page.

Et il ne  reste plus qu’à purger le cache Varnish depuis l’administration WordPress comme sur l’image ci-dessous, et vider le cache navigateur.

Aussi, il est conseillé ensuite de se rendre dans l’administration WordPress dans Réglages => Permaliens, afin de vérifier la configuration, et sauvegarder les réglages de la page, même si tout semble déjà correct, afin d’éviter d’avoir des erreurs de pages inaccessibles sur le site.

3. Rediriger définitivement le HTTP vers le HTTPs

Avec l’extension Really Simple SSL de WordPress, tous les visiteurs seront automatiquement redirigés du format HTTP de votre site sur sa version HTTPs sécurisée (SSL).