23 Nov Tutoriel : passer en HTTPS manuellement pour remplacer un plugin WordPress SSL comme Really Simple SSL déjà configuré
Récemment, j’ai passé tous mes sites web en HTTPS manuellement alors qu’ils étaient déjà en HTTPS. J’avais utilisé le plugin Really Simple SSL de Rogier Lankhorst que je trouvais vraiment simple à mettre en place, mais je voyais bien qu’il y avait un souci dans tout ça.
Dans mon processus de conception, création, développement de site web (appelle ça comme tu veux), il y a un paramètre qui m’obsède : c’est la vitesse ou le temps de chargement. J’ai, pendant des années, ignoré ça pour d’autre chose comme du style ou des effets en masse. Mais pour moi la qualité d’un site web se mesure à la vitesse de chargement de ses pages.
Pourquoi privilégier le manuel ?
Parfois, la facilité prend le dessus. Il m’arrive de mettre un plugin en quelques clics parce que je me refuse à aller chercher la vraie solution. Je me refuse à me confronter à une difficulté qui est celle de perdre plus de temps et d’énergie à essayer de comprendre un nouveau concept. Parfois, c’est la peur qui m’envahit, j’ai alors la crainte folle que mon site explose, me sorte une erreur 500, et que je doive tout reprendre. Bref par facilité ou par crainte, j’utilise des plugins. J’en consomme à tout va, mais en faisant ça, je vois bien les effets négatifs à terme. Mais alors quels sont-ils ?
Voici une liste non-exhaustive :
Le temps de vie : la gestions des extensions est rébarbative, quand tu as 10, 20, 30, 40 extensions ou + activées sur ton site, tu dois faire de la maintenance continuellement, quotidiennement, car chaque plugin à besoin de sa dose d’attention : configuration, mise à jour, non compatibilité avec les autres plugins, conflits divers et variés, etc. Cela demande du temps de s’occuper de ses plugins, si tu veux faire les choses bien. Toi-même tu sais.
La vulnérabilité de ton site : avoir une collection de plugin, c’est pas bon pour ton site WordPress. Et non, même si tu n’as jamais eu de soucis avec, tu vis avec une couille potentielle en sursis. Si tu oublies de mettre à jour ou que tu fais tourner un plugin obsolète par manque d’alternative, ton site est potentiellement vulnérable contre diverses attaques comme « Man-In-The-Middle » par exemple. Car des failles de sécurité peuvent se révéler suite au manque de suivi de tel ou tel plugin.
La vitesse des pages : c’est un critère fondamental tant pour l’expérience utilisateur, que le SEO et la qualité de ton site d’une façon générale. Comme tu le sais blinder ton site WordPress de plugins, ça alourdit grave la « bête ». Quand ça mouline, pour passer d’une page à l’autre, tu le dois entre autre au bourrage de plugins en arrière boutique, mais surtout à certains plugins en particulier.
La facilité : entre-nous, installer et activer un plugin, c’est facile. Tu tapes dans Google ta requête : « plugin wordpress … » et tu es sûr de trouver le bon plugin que tu télécharges aussi sec sur ton WordPress. Du coup on prend très vite goût à ça et on a vite fait de mettre de de côté les pratiques plus techniques, « en dur ». Mais c’est pour ça qu’on aime WordPress, hein ? Mais, je rappellerai juste ça : la facilité c’est le meilleur ennemi pour progresser. Et ce serait pas toi que j’ai retrouvé sur les groupes d’entraide en train de quémander un énième plugin ?
Si l’on aime à ce point WordPress, c’est bien entendu pour sa communauté, sa facilité d’utilisation et ses plugins ! En fonction de notre niveau, nos contraintes, etc. On est emmené à utiliser des plugins pour arriver à terme de nos projets WordPress. Mon conseil sera le suivant : si tu peux trouver une alternative à un plugin, fais-le !
Les interventions manuelles pour progresser
Intervenir manuellement va te permettre de progresser dans ton approche technique, mais surtout il ne va pas pas faillir (comme dit au dessus) à la première mise à jour ou à un quelconque problème interne. Prenons notre exemple qu’est celui de passer son WordPress manuellement en HTTPS : le faire à la main t’évites d’y revenir. A savoir la sécurité est un protocole privilégié par Google quand tu l’as fais, c’est calé et on y revient plus. A contrario, si tu l’as fais à l’aide d’un plugin, tu dois évoluer au gré des mises à jour, essayer de comprendre chaque case à cocher… bref tu t’en sors plus.
Mais le souci avec un plugin comme Really Simple SSL de Rogier Lankhorst, c’est que ça fait les choses à moitié. C’est à dire, au lieu de soumettre toutes tes URLs en HTPPS une bonne fois (de pages et d’articles, d’images, d’ancres de liens), le plugin va juste réécrire ton URL HTTP en HTTPS à chaque fois que tu fais une requête donc si tu en fais 10, il réécrit 10 fois l’URL. En d’autres termes à chaque fois qu’un visiteur lancera une requête sur ton site, ou cliquera un lien, ton site fera la transformation de l’URL de HTTP à HTTPs et cela pour toutes les URLs de ton site. Donc autant te dire que pour la performance, on est vraiment pas les meilleurs. A contrario, une fois que tu auras installé manuellement ce process de sécurité, ça sera plus rapide car tu auras changé en dur toutes les URLs de ton site une bonne fois pour toutes.
Attention : avant de procéder à tout changement majeur sur ton site WordPress, prévoit une sauvegarde de ton FTP et te ta BDD avant de te lancer.
J’ai trop parlé donc c’est parti !
Désactiver le plugin Really Simple SSL de Rogier Lankhorst
Cette partie s’adresse à toi qui a installé ce plugin ou un autre. Commence par le désactiver dans tes « Extensions » en pressant le lien « Désactiver (retour au http) »
Le plugin est désactivé et c’est une bonne chose de faite.
Une fois que tu as désactivé le plugin tes URLs reviennent automatiquement en HTTP, tu peux l’observer directement dans Réglages > Général.
Même si tu retournes sur ta page d’accueil et que tu presses le petit cadenas, ça va te sortir le message suivant :
Installer et activer Better Search Replace de Delicious Brain
Oui j’ai menti car on va utiliser un plugin dans le processus (juste un petit :)). Ce plugin est très utile et s’utilise en backend, donc pas de lourdeur en frontend, c’est une fonctionnalité qui va te permettre de scanner toutes nos URLs en HTTP sur notre BDD pour nous les changer rapidement en HTTPS. C’est un plugin qui n’aura aucun impact sur notre front-end contrairement au protocole HTTPS qui appartient à notre URL de site web.
Télécharge, le plugin Better Search Replace de Delicious Brain sur ton site web.
Installe-le puis active-le. Tu connais le refrain.
Ca y est ton plugin est activé.
Retrouve-le dans Outils > Better Search Replace
Dans un premier temps on va faire un test. Trois actions sont requises :
- 1) Ajoute l’URL que tu souhaites remplacer dans le premier et dans le second celle qui la remplace : à priori tu devrais te retrouver à ajouter la même URL mais avec un « s » à https
- 2) Sélectionne toutes les tables présentes avec « Cmd + A » : toutes les tables doivent être en bleu (comme sur la capture d’écran)
- Enfin coche la case « Insensible à la casse ? » par sécurité, et laisse cochée par défaut celle « Juste tester ? », pour faire le test.
Une fois la configuration faite, presse le bouton gris « Lancer Rechercher / Remplacer »
Une barre de progression apparaît pour avoir une vision du nombre exact d’URLs passées en revue et du temps que cela prend.
Une fois que le plugin a fini de tout scanner, une notification apparaît en haut de ton écran et t’annonce combien de tables de ta base de données ont été parcourues et combien de chaînes de caractères pourraient être modifiées. C’est plutôt efficace.
On va maintenant le faire pour de vrai, en procédant exactement comme la configuration « Test », sauf que l’on décoche la case « Faire le test ? ». Une fois décochée, valide ce choix en pressant à nouveau le bouton « Lancer Rechercher / Remplacer ».
On observe qu’il y a eu 3935 mises à jour, ce qui est énorme. On peut dire que ce plugin nous aide vraiment 😉
Les URLs de ton site ont été modifiées et tu peux le constater en retournant sur les réglages généraux.
Voilà une bonne chose de faite, maintenant on va devoir :
- Forcer le SSL pour sécuriser notre site
- Créer une redirection dans le .htaccess
Forcer le SSL dans son fichier wp-config.php
Dans un premier temps, on va sécuriser toute la partie admin de WordPress, c’est à dire que l’on va chiffrer l’ensemble des données échangées entre notre site web et le serveur pour prévenir les attaques. Connecte-toi à ton FTP et trouve le fichier .wp-config.php.
Edite-le et place le morceau de code ci-dessous juste avant « /* C’est tout, ne touchez pas à ce qui suit ! Bon blogging ! */ » :
define ('FORCE_SSL_ADMIN', true);
N’oublie pas d’enregistrer et c’est OK.
Créer une redirection dans le .htaccess
Enfin il faut que l’on créé une redirection pour prévenir que l’on est plus sur du HTTP par défaut mais que l’on est bien sur du HTTPS. Donc de cette redirection, on force l’accès uniquement en HTTPS, même si un utilisateur tape ton URL en HTTP.
Ouvre ton fichier .htaccess
et colle le code situé en dessous et veille bien à remplacer l’URL par la tienne.
Attention : ce code s’adresse à celles et ceux qui ont un hébergement OVH :
# Begin Force HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://tonsite.com/$1 [R,L]
# End Force HTTPS
Exemple :
Pense à bien enregistrer. Ça y est tu viens de passer ton site web HTTPS à la main.
Attention au « Mix Content »
Après cette manipulation tu peux te retrouver très bien et sur certaines pages seulement avec une configuration à moitié faite. C’est à dire que, au lieu de te retrouver avec le petit cadenas dans ta barre d’URL et le message vert : « La connexion est sécurisée », tu te retrouves avec un petit i et une notification : « Votre connexion à ce site n’est pas sécurisée ».
Cette notification t’avertit que cette page n’est pas complètement sécurisée pour cause des URL n’ont pas été modifiées et commencent toujours par HTTP
et non HTTPS
. Cela provient essentiellement des images qui ont été ajoutées sur la page en questions ou des ancres de liens ou boutons qui renvoient sur des pages internes.
Pour réparer cela, je te conseille d’effacer le lien de l’image de et de télécharger à nouveau cette dernière via ta bibliothèque de médias. Donc pas besoin de la supprimer entièrement et de la téléverser à nouveau.
Ensuite, pour les lien d’URL rajoute simplement un « S » pour voir des « HTTPS » partout. Mais en vrai, la solution la plus simple et classique que tu dois connaître est de mettre tous tes liens internes comme suit « /permalien ». Ce qui veut dire que n’utilise plus l’URL entière mais juste d’ajouter l’URI de ton URL exacte et toujours précédée d’un slash.
A toi de jouer.
Alexis FONTANA
Posted at 10:37h, 19 févrierTu peux faire encore mieux en utilisant aucun plugin et en scannant ta bdd avec un éditeur de texte et en faisant un rechercher remplacer puis upload de la bdd.
Batiste de Bosser en pyjama
Posted at 22:21h, 22 févrierMerci Alexis. En effet, on est d’accord avec cette solution et tu as bien fait de la signaler.
Caliméro
Posted at 18:04h, 30 septembreBonjour,
Tu peux aussi désormais tout simplement utiliser l’outil que WordPress met à ta disposition dans « Santé du site » pour la modification des URL 😉
Batiste de Bosser en pyjama
Posted at 12:11h, 02 octobreHello Caliméro ! Merci pour ton message. J’essaierai ça la prochaine fois pour gagner du temps.
Milie
Posted at 13:58h, 05 aoûtMerci pour ce tuto 🙂
Batiste de Bosser en pyjama
Posted at 11:37h, 09 aoûtHello Milie, cool si ce tuto t’as aidé
Batiste de Bosser en pyjama
Posted at 11:38h, 09 aoûtHello Milie, cool si ce tuto t’as aidé !
Alysee
Posted at 11:09h, 08 décembreHello, merci pour cet article. Malheureusement mon site a complètement planté.
J’ai remplacé « http » par « https », mais je n’ai pas ajouté le domaine derrière.
Résultat : le site a complètement sauté et impossible de me connecter au backoffice wordpress … Impossible de charger quoi que ce soit dans wp config ou ailleurs.
SOS ! lol
Batiste de Bosser en pyjama
Posted at 13:57h, 18 décembreOla Alysée, merci pour ton message ! J’espère que t’as fait une sauvegarde avant et remettre ton site d’aplomb dans les meilleures conditions. En as-tu une ? Ensuite, ce que je te conseille, c’est de repartir sur des bonnes bases et tenter à nouveau. Ça fonctionne !