SSL gratuit pour tout site Web WordPress
Publié: 2022-03-10Si vous avez un site Web de commerce électronique, SSL est obligatoire pour traiter en toute sécurité les cartes de crédit. Mais même si vous ne traitez pas de paiements, vous devriez tout de même envisager sérieusement le protocole HTTP sécurisé (ou HTTPS), surtout maintenant que je vais vous montrer comment le configurer rapidement et gratuitement. Commençons.
Qu'est-ce que SSL et pourquoi devrais-je m'en soucier ?
En bref, SSL est le "S" de HTTPS. Il ajoute une couche de chiffrement à HTTP qui garantit que le destinataire est bien celui qu'il prétend être et que seuls les destinataires autorisés peuvent déchiffrer le message pour voir son contenu.
Lectures complémentaires sur SmashingMag :
- HTTPS partout avec Nginx, Varnish et Apache
- Comment émettre un nouveau certificat SSL avec une ancienne clé SSL
- Se préparer pour HTTP/2 : un guide pour les concepteurs Web
Les informations sensibles telles que les numéros de carte de crédit - en gros, tout ce qui est privé - doivent toujours être servies via HTTPS. Cependant, il existe une tendance croissante à diffuser tout le contenu via HTTPS, comme nous le constatons sur les sites Web d'actualités, les blogs, les moteurs de recherche et les sites Web de la plupart des marques grand public. Ainsi, même si votre site Web ne traite pas les paiements, il existe de bonnes raisons d'envisager HTTPS, dont quelques-unes sont répertoriées ici :
- Crédibilité . Même les publics non techniques associent le petit cadenas vert dans la barre d'adresse du navigateur à la confiance et à la fiabilité.
- Protection par mot de passe . Peut-être que votre site Web n'héberge que des vidéos de chatons. Mais si les utilisateurs se connectent à votre site Web via Wi-Fi avec un mot de passe qu'ils utilisent également pour les services bancaires en ligne, vous facilitez potentiellement une grave violation de la sécurité en diffusant publiquement ces informations d'identification.
- À l'épreuve du futur . De nombreux sites Web sont toujours servis via HTTP, mais il existe une tendance indéniable vers HTTPS, et cela ne fera qu'augmenter à mesure que les utilisateurs seront de plus en plus informés sur la sécurité Web. Soyez du bon côté de l'histoire.
- référencement . Google a officiellement annoncé que HTTPS est utilisé comme signal de classement. En d'autres termes, Google récompense les sites Web HTTPS en améliorant leur classement dans les résultats de recherche.
Un argument courant contre HTTPS est qu'il réduit les performances. Certes, le processus de cryptage et de décryptage coûte des millisecondes supplémentaires, mais dans la plupart des situations, il est négligeable, comme en témoigne le fait que les entreprises soucieuses des performances telles que Google et Facebook diffusent tout leur contenu via HTTPS. Et, certes, HTTPS peut exacerber les problèmes de performances existants, comme de nombreux fichiers CSS servis individuellement, mais cela est atténué en suivant les meilleures pratiques de base en matière de performances. Et avec l'adoption de HTTP/2, le coût de performance de HTTPS est encore plus faible. En fin de compte, la réduction des performances n'est un moyen de dissuasion significatif que si votre site Web est soit hyperoptimisé, soit tellement sous-performant que chaque milliseconde compte.
Comment configurer HTTPS gratuitement
La première étape pour configurer HTTPS gratuitement consiste à vous inscrire à un service DNS cloud. Si vous n'avez aucune idée de ce qu'est le DNS, je vous recommande de prendre une minute pour apprendre avant de continuer. Le délicieux How DNS Works fait un excellent travail en le décomposant en un dessin humoristique. Sinon, sachez simplement que le DNS est le système par lequel les noms de domaine comme example.com
(que les humains comprennent) sont liés à des adresses IP comme 104.28.2.167
(que les ordinateurs comprennent). Vous avez de nombreuses options, mais je suis un fan de CloudFlare car il est très rapide à configurer, le tableau de bord est intuitif et un plan gratuit est disponible avec de nombreuses fonctionnalités puissantes.
Configuration de CloudFlare
Après avoir créé un compte CloudFlare, vous serez guidé par un assistant simple pour configurer votre premier site Web, qui se terminera par des instructions sur la façon de vous connecter à votre registraire de domaine et de pointer les serveurs de noms vers CloudFlare. Le changement prendra un certain temps à se propager, mais une fois terminé, CloudFlare hébergera les enregistrements DNS de votre site Web. Ensuite, activez la fonctionnalité "SSL flexible" de CloudFlare.

Le choix du paramètre « SSL flexible » est important car il ne vous oblige pas à acheter et à installer votre propre certificat SSL sur le serveur de votre site Web. Voici un schéma de ce qui se passe.

Comme vous pouvez le voir, CloudFlare agit en tant qu'intermédiaire pour sécuriser le trafic entre votre site Web et le client. S'il s'agissait d'un site Web HTML statique, vous seriez désormais en mesure de vous y connecter via HTTPS ( https://yourdomain.com
). Cependant, WordPress nécessite une configuration supplémentaire pour fonctionner avec le protocole modifié.
Reconfiguration de WordPress de HTTP à HTTPS
Vous devrez d'abord mettre à jour les paramètres "Adresse WordPress" et "Adresse du site" dans le tableau de bord, sous "Paramètres" → "Général". Lorsque vous faites cela, vous devrez vous reconnecter au tableau de bord.

Procédez prudemment. Si vous mettez à jour ces paramètres prématurément, vous risquez de vous bloquer. Par exemple, si le site Web n'est pas encore correctement configuré pour HTTPS et que les paramètres sont mis à jour, vous pouvez provoquer une boucle de redirection qui interrompt le site Web et vous empêche d'accéder au tableau de bord.

À ce stade, vous devriez pouvoir visiter la page d'accueil du site Web via HTTPS. Cependant, les liens de page pointeront toujours vers les URL HTTP. WordPress stocke les liens vers les pages et les images sous forme d'URL absolues, ce qui signifie que l'URL complète, y compris le protocole, est enregistrée dans la base de données. Pour vous assurer que l'ensemble du site Web est toujours servi via HTTPS (sans cracher des avertissements sur le contenu mixte), vous devrez mettre à jour votre contenu hérité.
Mise à jour du contenu hérité
Sur un petit site Web avec seulement quelques pages, l'option la plus rapide peut être simplement de mettre à jour manuellement les URL en modifiant les pages existantes dans l'interface d'administration. Si le site Web est volumineux ou possède un blog très actif, l'édition manuelle n'est probablement pas pratique. Si votre hébergeur fournit phpMyAdmin ou une autre interface pour exécuter des requêtes MySQL, vous pouvez le faire assez facilement avec quelques requêtes MySQL dans l'onglet SQL. Alternativement, vous pouvez suivre les instructions de The Customize Windows pour le faire à partir de la ligne de commande.
Au risque d'énoncer une évidence, remplacez yourdomain.com
dans les requêtes suivantes par votre domaine réel . De plus, si vous avez personnalisé le préfixe de table de WordPress, remplacez wp_
par le préfixe approprié.
Tout d'abord, mettez à jour les URL des publications et des pages.
UPDATE wp_posts SET guid = replace(guid, 'https://yourdomain.com','https://yourdomain.com');
[MISE À JOUR : Comme indiqué dans les commentaires, le champ guid ne doit pas être modifié.]
Mettez également à jour la table wp_postmeta
.
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://yourdomain.com','https://yourdomain.com');
Enfin, mettez à jour le contenu réel des publications ou des pages. Cela mettra à jour tous les backlinks vers HTTPS.
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://yourdomain.com', 'https://yourdomain.com');
Après avoir exécuté ces requêtes, vous souhaiterez actualiser vos permaliens en allant dans "Paramètres" → "Permaliens". Modifiez simplement le paramètre par défaut, puis remettez-le sur le paramètre que vous utilisiez à l'origine.
Maintenant, vous devriez pouvoir cliquer sur les menus et les liens sur tout le site Web, et le protocole doit rester HTTPS.
Dépannage des avertissements de contenu mixte
Selon le thème et les plugins utilisés, vous pouvez recevoir un avertissement dans la barre d'adresse indiquant que certaines ressources ne sont pas servies en toute sécurité. Si les erreurs sont associées à des actifs ajoutés par votre propre thème ou plug-in personnalisé, assurez-vous de mettre correctement en file d'attente les fichiers JavaScript et CSS et de ne pas coder en dur les URL commençant par HTTP
. La plupart des navigateurs vous permettent de développer l'avertissement pour afficher les demandes spécifiques à l'origine de l'erreur. Vous pouvez également essayer un plugin gratuit tel que SSL Insecure Content Fixer, qui tentera de corriger les plugins tiers qui n'ont pas réussi à le faire.
À ce stade, vous devriez voir le cadenas vert dans la barre d'URL lorsque vous visitez votre site Web. Si vous n'utilisez pas de plugin e-commerce tel que WooCommerce ou WP eCommerce, vous avez terminé ! Si c'est le cas, il y a une dernière étape importante.
Obtenir SSL flexible pour fonctionner avec les plugins de commerce électronique
WordPress a une fonction principale nommée is_SSL()
sur laquelle les plugins s'appuient pour déterminer si le trafic est crypté avec SSL. Avec la méthode ci-dessus seule, cette fonction renverra false
car le cryptage est uniquement entre CloudFlare et le client. Le trafic avec lequel PHP interagit n'est pas chiffré, donc le super global que cette fonction vérifie (c'est-à-dire $_SERVER['HTTPS']
) ne serait pas utile. Pour notre propos, la variable pertinente est $_SERVER['HTTP_X_FORWARDED_PROTO']
, qui, au moment de la rédaction, WordPress ne reconnaît pas. La demande de changement est de longue date, mais elle n'a pas encore été résolue.
Heureusement , un plugin gratuit résoudra ce problème immédiatement pour vous, CloudFlare Flexible SSL. Installez simplement le plugin et activez-le. N'oubliez pas que cette technique n'apporte aucune sécurité supplémentaire . Le trafic entre CloudFlare et le serveur de votre site Web n'est toujours pas chiffré et, par conséquent, toujours vulnérable au reniflage.
SSL flexible n'est pas SSL complet
L'initiative "Universal SSL" de CloudFlare est une tentative intéressante pour rendre Internet plus sûr, mais elle n'est pas sans controverse. La principale préoccupation est que le SSL flexible ne crypte pas la seconde moitié du trajet du trafic (vers votre serveur), mais le navigateur affiche actuellement toujours le même cadenas vert que nous en sommes venus à associer au SSL complet . CloudFlare propose la justification suivante sur son blog :
Avoir un cryptage de pointe peut ne pas sembler important pour un petit blog, mais il est essentiel pour faire avancer l'avenir du cryptage par défaut d'Internet. Chaque octet, aussi banal soit-il, qui circule crypté sur Internet complique la tâche de ceux qui souhaitent intercepter, étrangler ou censurer le Web. En d'autres termes, s'assurer que votre blog personnel est disponible via HTTPS augmente la probabilité qu'une organisation de défense des droits de l'homme, un service de médias sociaux ou un journaliste indépendant soit accessible dans le monde entier. Ensemble, nous pouvons faire de grandes choses.
Pour le meilleur ou pour le pire, le SSL flexible est là, et Internet devra s'adapter. En attendant, il incombe aux propriétaires de sites Web d'être éduqués et de prendre des décisions responsables.
Redirection des requêtes HTTP vers HTTPS
L'activation d'un site Web pour qu'il s'exécute sur HTTPS ne garantit pas que les requêtes utiliseront réellement le protocole. Si votre site Web existe depuis un certain temps, les utilisateurs l'ont peut-être déjà marqué avec HTTP. Vous pouvez rediriger toutes les requêtes HTTP vers le nouveau protocole en ajoutant l'extrait de code suivant en haut du fichier .htaccess
à la racine de votre site Web. Si le fichier n'existe pas, vous pouvez l'ajouter en toute sécurité.
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://yourdomain.com/$1 [R=301,L] </IfModule>
Si un fichier .htaccess
existe déjà, veillez à ne rien modifier entre les lignes # BEGIN WordPress
et # END WordPress
dans ce fichier. Ces lignes sont gérées par WordPress, et chaque fois que les permaliens sont actualisés, le contenu de cette section est écrasé.
Toutes nos félicitations
En mettant à niveau votre site Web vers HTTPS, vous avez amélioré votre site Web, protégé les utilisateurs et participé à l'avancement d'Internet. Et cela ne vous a rien coûté !