Options pour SSL dans WordPress

Avec la priorité croissante accordée à la sécurité Web, les certificats SSL ont commencé à devenir une pratique courante lors de la configuration de sites Web.. 

Cet article vous montrera comment implémenter SSL sur votre site Web WordPress mais n'ira pas dans les détails pour acheter et configurer des certificats avec votre hôte Web, car cela change d'un fournisseur à l'autre.. 

Cela dit, la plupart des hébergeurs vendent et installent des certificats SSL pour leurs clients pour un prix relativement modique. Pour effectuer les modifications décrites dans cet article, vous devez déjà avoir un certificat SSL configuré sur votre serveur Web..

Qu'est ce que le SSL??

SSL.com décrit SSL comme:

SSL (Secure Sockets Layer) est la technologie de sécurité standard utilisée pour établir un lien crypté entre un serveur Web et un navigateur. Ce lien garantit que toutes les données transmises entre le serveur Web et les navigateurs restent privées et intégrales..

Pourquoi utiliser SSL?

Sécurité

Il n'y a rien de tel que d'être "trop ​​sécurisé". SSL est maintenant plus facile et plus abordable que jamais à mettre en œuvre. Si vous avez un site Web de commerce électronique ou traitez des données d'utilisateurs, alors c'est essentiel. SSL ne s'applique pas uniquement aux sites Web de commerce électronique: aucun site Web ne peut l'utiliser..

Confiance

Avoir un certificat SSL valide est un bon signe de confiance à envoyer aux visiteurs de votre site Web. De nombreux utilisateurs vont maintenant rechercher https dans la barre d'adresse de leur navigateur.

SEO

Cela va de pair avec la confiance - Google a annoncé qu'il commençait à utiliser SSL comme signal de classement.

Un rapide dégagement de responsabilité

Comme toujours, avec tout changement sur un site Web, vous devez d'abord effectuer une sauvegarde complète et travailler sur un site Web intermédiaire avant de modifier le site Web en direct..

Sécuriser l'administrateur WordPress

Pouvoir sécuriser le back-end de WordPress est en fait une fonctionnalité intégrée au cœur de WordPress. Pour activer cette option, vous devrez modifier votre wp-config.php fichier qui se trouve à la racine de votre installation WordPress. Il est important de toujours faire une sauvegarde de ce fichier avant de le modifier car il contient des données cruciales qui permettent à votre installation WordPress de fonctionner..

Une fois ce fichier édité, le FORCE_SSL_ADMIN constante doit être réglé sur vrai. Le code complet ressemble à ceci:

define ('FORCE_SSL_ADMIN', true);

Une fois cette ligne ajoutée (peut être ajoutée au bas de la fenêtre) wp-config.php fichier) veillez à enregistrer le fichier. Une actualisation devrait montrer que ceci est en cours de chargement sur HTTPS.

SSL utilisant le plugin WordPress HTTPS

WordPress HTTPS est un choix populaire parmi les utilisateurs qui souhaitent utiliser SSL sur leur site WordPress. Le plugin offre un moyen simple de forcer SSL à partir de l’administrateur de WordPress. Il est très utile si vous souhaitez sécuriser uniquement certaines parties de votre site Web (publications ou pages), mais vous pouvez également l'utiliser pour sécuriser l'ensemble de votre site et supprimer automatiquement les éléments non sécurisés..

Pour installer le plugin, à partir du tableau de bord WordPress, sélectionnez Plugins> Ajouter un nouveau. Ensuite, recherchez "WordPress HTTPS" et cliquez sur "Installer"..

Sécurisation de posts / pages uniques

Une fois installé, chaque publication / page aura une métabox personnalisée qui vous donnera la possibilité de sécuriser la publication et (éventuellement) toutes les publications enfants. Vérifiez quelle option vous concerne et sauvegardez votre message. Ce message (et les messages enfants si vous avez coché cette case) seront désormais diffusés via HTTPS..

Sécuriser votre site entier

La sécurisation de l’ensemble de votre site peut être effectuée à partir de la page de paramètres WordPress HTTPS. En cliquant sur l'icône du menu WordPress HTTPS à partir du tableau de bord WordPress, vous accédez à la page des paramètres. Je vais passer en revue les paramètres les plus courants:

  • Forcer l'administration SSL: Ceci est une case à cocher, si vous avez déjà suivi la section "Sécuriser l'administrateur de WordPress" de cet article, cette option sera cochée par défaut. Si vous ne l'avez pas déjà fait, cochez cette case pour sécuriser l'administrateur WordPress.
  • Forcer SSL exclusivement: Si vous cochez cette case, toute page dont vous n’avez pas demandé l’utilisation de SSL sera redirigée vers le protocole HTTP standard..
  • Supprimer les éléments non sécurisésSi vous cochez cette case, tous les éléments de la page inaccessibles via HTTPS seront supprimés. L'inconvénient de ce paramètre est qu'il peut empêcher les plugins de s'appuyer sur des ressources externes - utilisez-le avec prudence.

Enfin, vers le bas de cette page, vous trouverez un champ de texte appelé "Filtres URL". Cette partie vous permet de sécuriser des sections de votre site Web basées sur une URL (elle accepte également les expressions régulières). L'exemple donné ici par le plugin est si vous voulez sécuriser toutes les URL commençant par /le magasin/

Pour ce faire, vous tapez /le magasin/ dans la zone de texte et cliquez sur "Enregistrer les modifications". Pour chaque nouveau filtre que vous créez, vous devrez créer une nouvelle ligne. Le paramètre "Filtres sécurisés" peut également être utilisé pour que le plug-in sécurise l'ensemble de votre site Web. Ajoutez simplement un filtre qui est une barre oblique (/). Désormais, toute personne tentant d’accéder via HTTP sera redirigée vers HTTPS. Il est judicieux de modifier également les paramètres d'URL standard de WordPress si vous utilisez l'intégralité de votre site Web via HTTPS. Ceci est expliqué dans la section suivante de l'article.

Mettre à jour: Les utilisateurs ont signalé des problèmes avec ce plugin et WordPress 4.0 - il est recommandé de ne pas utiliser cette solution tant que ces problèmes ne sont pas résolus. S'il vous plaît voir ci-dessous pour une solution de plugin alternative.

SSL en utilisant le plugin de sécurité iThemes

iThemes Security est l’un des plugins de sécurité WordPress les plus populaires. Il offre de nombreuses fonctionnalités prêtes à l'emploi pour sécuriser votre site WordPress, notamment la possibilité d'utiliser HTTPS..

Attention: Ce plugin est très puissant et certains paramètres peuvent vous empêcher de sortir de votre site Web. Pour la configuration de base du plugin, je vous recommande de regarder la vidéo officielle iThemes.

Une fois le plugin installé et configuré (voir la vidéo ci-dessus), accédez à votre tableau de bord WordPress, cliquez sur l'onglet "Sécurité", puis sur le lien "Paramètres"..

Dans la liste déroulante "Aller à", cliquez sur "Couches sécurisées (SSL)" pour accéder à la section appropriée des paramètres..

Il y a trois paramètres dans cette section:

  1. Mode SSL frontal: Ce menu déroulant propose trois options:
  • Désactivé - pas de SSL frontal
  • Par contenu - vous pouvez choisir des publications spécifiques à sécuriser par SSL
  • Tout le site - Tout le front-end est sécurisé
  • Forcer SSL pour la connexion: cocher cette case signifie que toutes les connexions sont servies via HTTPS.
  • Forcer SSL pour le tableau de bord: Cocher cette case forcera votre tableau de bord WordPress à utiliser HTTPS.
  • La partie la plus utile du plugin est la possibilité de sécuriser un contenu spécifique sur le front-end; si vous souhaitez sécuriser l'ensemble du site, la solution .htaccess est probablement le pari le plus sûr.

    Une fois que vous avez fait vos options ici, assurez-vous de cliquer sur le bouton "Enregistrer toutes les modifications".

    Si vous avez choisi l'option "par contenu", vous verrez maintenant une case à cocher dans la métabox de publication dans les publications. Cochez cette case et cliquez sur "Mettre à jour" pour sécuriser cette page.

    La sécurité de SSL pour iThemes est limitée par le fait qu’il n’autorise pas les caractères génériques, vous ne pouvez donc pas créer de règles générales..

    SSL utilisant le code

    Cette méthode convient aux utilisateurs souhaitant desservir l’ensemble du site via HTTPS. Ce que nous devons faire ici est essentiellement de rediriger tout trafic de HTTP vers HTTPS, en utilisant le code 301 (déplacé de manière permanente). Cela peut être fait avec PHP mais ma méthode préférée est d’utiliser .htaccess. Pour que cette solution fonctionne, vous aurez besoin d’un hôte Apache avec mod_rewrite activé - la plupart des hôtes Linux le sont, mais demandez à votre hôte avant d'apporter des modifications..

    Avant de faire .htaccess changements, il y a quelques paramètres WordPress que nous devons changer. À partir du tableau de bord WordPress, accédez à Paramètres> Général. Sous "Adresse WordPress (URL)" et "Adresse du site (URL)", vous devez modifier l'adresse Web afin qu'au lieu de http://www.votredomaine.com, il soit indiqué: https://www.votredomaine.com (notez le https). Une fois cela fait, faites défiler vers le bas et cliquez sur le bouton "Enregistrer les modifications". Cela indique à WordPress d'utiliser HTTPS dans toutes les URL, mais n'empêche pas encore les personnes d'accéder à votre site Web via HTTP. C'est là que le .htaccess le fichier arrive.

    Si vous avez activé les permaliens, vous aurez déjà un .htaccess fichier présent dans le répertoire racine de votre installation WordPress. Si vous ne le faites pas, vous devrez en créer un. Pour ce faire, créez un nouveau fichier avec le nom .htaccess - ce fichier ne doit avoir aucun autre nom ou extension. .htaccess les fichiers sont des fichiers point ou des fichiers cachés; vous devrez donc peut-être activer la visualisation des fichiers cachés dans votre système d'exploitation pour les voir..

    Ensuite, ouvrez votre .htaccess fichier avec votre éditeur de texte de choix. Si vous n’avez pas activé les permaliens, alors votre .htaccess le fichier peut être vide. Si vous avez activé les permaliens, vous avez peut-être déjà du code qui ressemble à ceci:

    # COMMENCE WordPress  RewriteEngine sur RewriteBase / secure / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /secure/index.php [L]  # FIN WordPress

    Nous allons ajouter un peu plus de code ici. Directement au-dessus du code standard WordPress, collez ce qui suit:

    # Commencez HTTPS  RewriteEngine On RewriteCond% SERVER_PORT 80 RewriteRule ^ (. *) $ Https://www.votredomaine.com/$1 [R, L]  # FIN HTTPS

    N'oubliez pas de remplacer https://www.votredomaine.com/ par votre nom de domaine actuel. Si vous avez un blanc .htaccess fichier puis il suffit de mettre le code directement dans le fichier.

    Les première et dernière lignes de ce code avec le symbole de hachage (#) sont des commentaires et sont là pour rendre le code plus lisible par l'homme. le vérifie que le mod_rewrite Le module est activé car ce code repose sur mod_rewrite pour la redirection. Nous nous assurons ensuite que RewriteEngine est défini sur On car nous avons besoin du moteur de réécriture pour créer nos redirections. Ensuite, nous définissons une condition pour notre réécriture, ce qui signifie que la règle créée ne sera exécutée que si le port 80 est utilisé (le port 80 est le port HTTP standard). Enfin, RewriteRule redirige les utilisateurs vers la version HTTPS du domaine..

    Pour vérifier que cela fonctionne correctement, essayez de visiter votre site en utilisant une URL HTTP. S'il passe automatiquement à HTTPS, cela fonctionne correctement..

    Quelle solution devrions-nous utiliser?

    Il n'y a pas de bonne ou de mauvaise réponse ici. On pourrait faire valoir que s’appuyer sur un plug-in pour une partie intégrante de votre site Web n’est peut-être pas la meilleure idée. Si le plug-in est désactivé, supprimé ou comporte une mauvaise mise à jour, il pourrait avoir de graves conséquences pour votre site Web.. 

    Cela dit, le plugin WordPress HTTPS a une bonne réputation avec beaucoup de téléchargements et est naturellement open source. Utiliser le plugin WordPress HTTPS est le moyen le plus simple de définir HTTPS sur certaines zones de votre site Web..

    D'autre part, la méthode du code est simple et agréable si vous êtes à l'aise pour effectuer quelques modifications simples dans les fichiers. Il s'agit d'une méthode fiable pour faire fonctionner tout votre site Web sur HTTPS..

    Quelques pièges du développeur

    Pour que votre site Web SSL soit valide, tout votre contenu doit également être envoyé via SSL. Cela inclut, sans toutefois s'y limiter, les scripts, les polices, les feuilles de style, les éléments intégrés et les images. Certaines agences de publicité n'envoient pas encore de contenu via HTTPS. Si tel est le cas, vous n'avez pas beaucoup de choix, bien qu'il soit possible d'avoir certaines pages HTTPS et d'autres HTTP, comme expliqué précédemment dans l'article..

    Pour éviter ce mal de tête, vous pouvez utiliser une URL relative au protocole. Par exemple, supposons que nous demandions la police Web populaire Google "Open Sans":

    Notez le manque de HTTP ou HTTPS au début de cette URL? ce que cela fait, c'est demander l'actif en utilisant le même protocole que la page. Ainsi, si vous utilisez HTTPS, il demandera automatiquement la version HTTPS de la police Web. Si la version HTTPS n'existe pas, il utilisera HTTP. Cette technique comporte quelques petites mises en garde, comme l'explique un article de Paul Irish. Pour la meilleure part, cela fonctionne très bien et résoudra quelques maux de tête - cela fonctionne également en CSS.

    Débogage des erreurs HTTPS

    Les erreurs HTTPS sont souvent dues au fait que la page fournit également du contenu non HTTPS. Pour connaître le contenu incriminé, Google Chrome peut être utilisé pour déboguer.

    Pour identifier une page défaillante, un triangle jaune apparaît au-dessus du cadenas dans la barre d’adresse de Google Chrome. En cliquant dessus, l'erreur exacte sera affichée comme indiqué ci-dessous:

    Pour connaître le contenu incriminé sur cette page afin de le corriger, sélectionnez Afficher >> Développeur >> Console JavaScript. Vous devriez maintenant voir des erreurs telles que celles présentées ci-dessous:

    Cette erreur indique le fichier exact à l'origine du problème (http://en.support.files.wordpress.com/2008/12/def-avatar.png dans ce cas) et le numéro de la ligne dans laquelle le contenu apparaît ( 316). Ce contenu devrait simplement être remplacé par HTTPS (à condition que le serveur sur lequel le contenu se trouve prend en charge HTTPS) ou utilisez une URL relative au protocole, comme expliqué précédemment dans cet article..

    Conclusion

    Vous serez maintenant en mesure de décider quelle est la meilleure méthode pour utiliser HTTPS sur votre site Web WordPress et mettre en œuvre votre solution préférée..