30-50% off hundreds of digital assets! WordPress themes, video, music and more 30-50% Off Go to Sale
Advertisement
  1. Code
  2. WordPress
Code

Options Pour SSL dans Wordpress

by
Difficulty:IntermediateLength:LongLanguages:

French (Français) translation by Willy Touomi (you can also view the original English article)

Avec l'accroissement de l'intérêt pour la sécurité sur le web, les certificats SSL ont commencé à devenir une pratique commune lors de la mise en place des sites web.

Cet article vous montrera comment implémenter SSL dans votre site Wordpress, mais n'entrera pas dans les détails de l'achat et de la configuration des certificats chez votre hébergeur, vu que cela diffère d'un hébergeur à un autre.

Ceci dit, la plupart des hébergeurs vendent et installent des certificats SSL pour leurs clients à concurrence de peu de frais. Afin faire toute modification décrite dans cet article, vous devrez déjà avoir un certificat SSL configuré pour sur serveur web.

C'est quoi le SSL

SSL.com décrit le SSL comme:

SSL (Secure Sockets Layer) est la technologie de sécurité standard pour établir un lien crypté entre un serveur web et un navigateur. Ce lien s'assure que toutes les données passées entre le serveur web et les navigateurs demeurent privées et intrégrales.

Pourquoi utiliser SSL

La sécurité

Il n'y a rien de tel que d'être "trop sécurisé". SSL est plus que jamais accessible et facile à implémenter. Si vous avez un site e-commerce ou si vous traitez des informations utilisateur vitales. SSL n'est pas seulement pour les sites e-commerce cependant - absolument n'importe quel site web peut l'utiliser.

La confiance

Avoir un certificat SSL valide est un bon signal de confiance à envoyer aux visiteurs de votre site web. Plusieurs utilisateurs cherchent maintenant https dans l'adresse de leur navigateur.

Référencement

Le référencement vient de pair avec la confiance - Google a dit qu'il utiliserait dorénavant le SSL comme un critère de classement.

Note rapide

Comme toujours, avant de faire un changement sur votre site web, vous devez en faire une sauvegarde complète et travailler sur un site auxilliaire avant de faire la modification sur le site de production.

Sécuriser l'administration de Wordpress

La capacité de sécurité l'administration de Wordpress est une fonctionnalité dorénavant incluse dans le coeur de Wordpress. Si vous souhaitez activer cette option, il vous faudra éditer le fichier wp-config.php qui se trouve à la racine de votre installation Wordpress. Il est important de toujours faire une sauvegarde de ce fichier avant de le modifier, vu qu'il contient les données essentielles qui permettent à votre site Wordpress de fonctionner.

Une fois le fichier éditer, définissez la constante FORCE_SSL_ADMIN à true. Le code complet ressemble à ceci:

Une fois que cette ligne a été ajoutée (vous pouvez l'ajouter à la fin du fichier wp-config.php, soyez sûr que vous avez enregistré le fichier. Un rafraîchissement de votre page devrait vous montrer que l'administration est maintenant chargée via HTTPS.

SSL en utilisant le plugin Wordpress HTTPS

Wordpress HTTPS est une option populaire parmi les utilisateurs qui désirent utiliser SSL sur leur site Wordpress. Le plugin offre un moyen simple de forcer l'utilisation de SSL depuis l'administration de Wordpress. Il est encore plus utile si vous souhaitez sécuriser certaines parties de votre site web (pages ou articles), mais il peut également être utilisé pour sécuriser tout votre site et supprimer automatiquement les éléments non-sécurisés.

Pour installer le plugin, depuis l'administration de Wordpress, allez dans Plugins > Add New - puis cherchez "Wordpress HTTPS" et cliquez sur "Install".

Sécuriser les pages/articles

Une fois que le plugin aura été installé, chaque page/article aura une boîte méta personnalisée, qui vous offrira la possibilité de sécuriser l'article et (éventuellement) tout article enfant. Cochez l'option qui vous convient et enregistrez votre article. Cet article (et les articles enfants, si vous avez coché cette option) seront dorénavant accessible par HTTPS seulement.

WordPress HTTPS Metabox

Sécuriser tout le site

Sécuriser tout le site peut être fait depuis la page de configuration de Wordpress HTTPS. En cliquant sur l'icône de Wordpress HTTPS dans l'administration de Wordpress, vous atteindrez sa page de configuration - Je vais aborder les paramètres les plus communs:

  • Forcer SSL dans l'administration: C'est une case à cocher. Si vous avez déjà appliqué les instructions de la section "Sécuriser l'administration de Wordpress" de cet article, alors la case devrait être cochée par défaut. Si vous ne l'avez pas fait, en la cochant, vous sécuriserez tout votre espace d'administration.
  • Forcer SSL exclusivement: Si vous cochez cette case, chaque page pour laquelle vous n'aurez pas activé SSL sera consultée via le HTTP standard.
  • Supprimer les éléments non-sécurisés: en cochant cette case, le plugin supprimera tous les éléments de la page qui ne sont pas accessible par HTTPS. L'inconvénient de ce paramètre est qu'il peut empêcher les plugins qui s'appuient sur des ressources externes de fonctionner - à utiliser avec précaution.
WordPress HTTPS Settings

Finalement, vous trouverez vers le bas de page un champ de texte appelé "Filtres URL". Cette partie vous permet de sécuriser des sections de votre site en fonction de l'URL (les expressions régulières sont aussi acceptées). L'exemple donné par le plugin permet de sécuriser toutes les URLs qui commencent par /store/.

Pour ce faire, vous devez saisir /store/ dans le champ texte et cliquer sur "Enregistrer les modifications". Pour chaque nouveau filtre que vous créerez, vous devrez commencer une nouvelle ligne. L'option "Secure Filters" peut aussi être utilisée pour sécuriser tout le site. Il suffira d'ajouter un filtre qui correspond au slash (/). Dorénavant, toute personne qui essaiera d'accéder à votre site via HTTP sera redirigé vers HTTPS. Il faudrait également penser à modifier les paramètres de vos URLs Wordpress si vous affichez tout le site par HTTPS. C'est expliqué dans la section suivante de l'article.

WordPress HTTPS Secure Filters

SSL par le code

Cette méthode est adéquate pour tous ceux qui veulent afficher leur site par HTTPS. Tout ce que nous avons besoin de faire ici est essentiellement de rediriger tout le trafic HTTP vers HTTPS, en utilisant le code 301 (déplacement permanent). Cela peut être fait par HTTP, mais ma méthode préférée est le .htaccess. Afin que cette solution fonctionne, vous aurez besoin que le module mod_rewrite soit installé sur votre serveur Apache - c'est le cas sur la plupart des serveurs Linux, mais renseignez-vous auprès de votre hébergeur avant de faire les changements.

Bien avant de faire les modifications dans le .htaccess, il y a quelques paramètres Wordpress à changer. Depuis l'administration, allez dans Settings > General. Sous "Adresse Wordpress (URL)" et "Adresse du site (URL)", vous devez modifier l'adresse du site afin que http://www.yourdomain.com devienne https://www.yourdomain.com (notez le https). Une fois que c'est fait, cliquez sur le bouton "Enregistrer les modifications" qui se trouve en bas de page. Cela dit à Wordpress qu'il faut utiliser HTTPS dans toutes les URLs, mais n'empêche personne d'accéder à votre site en utilisant HTTP. C'est là que le fichier .htaccess entre en ligne.

Si vous avez activé les permaliens, alors vous devez normalement déjà avoir un fichier .htaccess présent à la racine de votre installation Wordpress. Si vous n'avez pas de .htaccess, il vous faudra en créer un - pour ce faire, créez un fichier avec le nom .htaccess - ce fichier ne pas avoir d'autre nom ou extension. Les fichiers .htaccess sont des fichiers-points ou des fichiers cachés. Vous devrez probablement avoir besoin d'activer l'affichage des fichiers cachés sous votre système avant que vous puissiez les voir.

Ensuite, ouvrez votre fichier .htaccess avec votre l'éditeur texte que vous souhaitez. Si vous n'avez pas activé les permaliens, il se pourrait alors que votre fichier .htaccess soit vide. Si vous avez activé les permaliens, vous devriez donc y avoir un peu de code qui ressemblerait à ceci:

Nous allons ajouter un peu de code ici. Juste avant le code standard proposé par Wordpress, coller ceci:

Souvenez-vous qu'il vous faut remplacer https://www.yourdomain.com/ par votre vrai nom de domaine. Dans le cas où votre .htaccess serait vide, mettez juste notre code dans votre fichier.

La première et la dernière ligne de ce code qui commencent avec le symbole dièse (#) sont des commentaires et aident le code être plus lisible par des êtres humains. L'instruction <IfModule mod_rewrite.c> vérifie que le module mod_rewrite est activé, vu que ce code s'appuie sur mod_rewrite pour la redirection. Nous nous assurons ainsi que RewriteEngine est configuré à ON, car nous avons besoin du moteur de reécriture pour faire nos redirections. Ensuite, nous créons une condition pour notre reécriture, qui dit que la règle que nous créons ne sera exécutée que si l'accès est fait par le port 80 (c'est le port standard du protocole HTTP). Finalement, l'instruction RewritRule redirige les utilisateurs vers la version HTTPS du domaine.

Afin de tester que tout fonctionne correctement, essayez d'ouvrir une URL de votre site en utilisant HTTP - si le site passe automatiquement à HTTPS, alors c'est que tout fonctionne correctement.

Quelle solution devons-nous utiliser?

Il n'y a ni bonne ni mauvaise réponse ici. On pourrait faire valoir comme argument que s'appuyer sur un plugin pour une telle partie de votre site n'est pas une bonne idée puisque, si le plugin est désactivé ou supprimé, ou est victime d'une mauvaise mise à jour, il pourrait avoir de mauvaises conséquences pour votre site.

Cependant, le plugin Wordpress HTTPS a bonne réputation, avec un grand nombre de téléchargements, et est naturellement Open Source. Utiliser le plugin Wordpress HTTPS est la façon la plus facile si vous souhaitez sécuriser l'accès de certaines parties de votre site par HTTPS.

D'autre part, la méthode par code est simple, belle et sûre pour activer HTTPS sur votre site, à condition que vous vous sentiez à l'aise avec de petites modifications dans les fichiers.

Quelques pièges à éviter

Pour que votre site SSL soit valide, tout votre contenu doit être envoyé par SSL également. Ceci inclus les scripts, les polices, les feuilles de style, les inlcusions et les images, sans se limiter à tout cela. Certaines agences de pub n'envoient pas encore tout leur contenu par HTTPS. Si c'est le cas vous n'avez pas beaucoup de choix, car il est possible d'envoyer certaines pages par HTTPS et d'autres par HTTP, comme expliqué plutôt dans l'article.

Afin d'éviter ces maux de tête, vous pouvez utiliser une URL relative au protocole. Par exemple, disons que vous demandiez la très populaire police 'Open Sans' de Google:

Vous avez noté l'absence de HTTP ou de HTTPS au début de cette URL? Ce qu'elle fait c'est simplement de demander la ressource en utilisant le même protocole que celui de la page. Donc, si vous utilisez HTTPS, la police sera automatiquement chargée par HTTPS. Si la version HTTPS de la police n'existe pas, alors Google utilisera HTTP. Il y a quelques inconvénients à cette technique, comme expliqué dans par Paul Irish dans son article L'URL relative au protocole. Pour la meilleure partie, cette astuce fonctionne bien et résoudra la plupart des difficultés - ça marche aussi avec le CSS.

Debugger les erreurs HTTPS

Les erreurs HTTPS sont souvent causées par la page qui ne sert pas du contenu HTTPS. Si vous souhaitez trouver le contenu en cause, vous pouvez utiliser Google Chrome pour le debuggage.

Pour identifier une page non-conforme, dans Google Chrome, vous verrez un triangle jaune sur le cadenas dans la barre d'adresse. En cliquant dessus, vous verrez l'erreur exacte comme montré ci-dessous:

Broken SSL in Google Chrome

Il s'agit maintenant de trouver le contenu en cause et de régler ce problème. Pour ce faire, sélectionnez View >> Developer >> JavaScript console. Vous devriez maintenant apercevoir des erreurs comme celles affichées ci-dessous.

Error Message The page at httpsmakewordpressorgsupportuser-manualwordpress-settingsdiscussion-settings was loaded over HTTPS but displayed insecure content from httpensupportfileswordpresscom200812def-avatarpng this content should also be loaded over HTTPS makewordpressorgsupportuser-manualwordpress-settingsdiscussion-settings316

Cette erreur montre exactement le fichier qui cause problème (dans notre cas http://en.support.files.wordpress.com/2008/12/def-avatar.png) et la ligne à laquelle le contenu apparaît (316). Ce contenu devra simplement être changé en HTTPS (en assumant que le serveur qui fournit le cotnenu supporte le HTTPS). On pourra aussi utiliser, pour régler ce problème une URL relative au protocole, comme mentionné plus tôt dans l'article.

Conclusion

Maintenant, vous serez capable de déterminer la meilleure méthode pour utiliser HTTPS sur votre site Wordpress, et l'installer.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.