Dans le cadre du développement du site www.WPSERVEUR.net, j’ai du passer un site WordPress en version sécurisée, à savoir de HTTP vers HTTPS.
Si cette procédure est relativement simple, elle nécessite toutefois quelques éclaircissements et précautions d’usage que je vais m’empresser de vous décrire dans ce tuto;)
Définitions SSL & HTTPS
Commençons tout d’abord par quelques définitions et rappels essentiels :
SSL : Secure Sockets Layer est un protocole de sécurisation des échanges sur Internet, développé à l’origine par Netscape. C’est le standard technologique de sécurité pour établir un lien crypté entre un serveur web et un navigateur. Ce lien garantit que toutes les données échangées entre le serveur web et les navigateurs restent privées et inviolables pour empêcher l’espionnage et la falsification.
HTTPS : HyperText Transfer Protocol Secure, littéralement “protocole de transfert hypertexte sécurisé” est la combinaison du HTTP avec une couche de chiffrement SSL ou TLS. Le 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. Il garantit théoriquement la confidentialité et l’intégrité des données envoyées par l’utilisateur (notamment les informations entrées dans les formulaires) et reçues du serveur. Il permet de valider l’identité du visiteur, si celui-ci utilise également un certificat d’authentification client.
En résumé, le SSL est la norme qui définit comment seront cryptées les connexions via HTTPS !
La différence entre HTTP & HTTPS
Il y a de nombreux critères qui différencient HTTP de HTTPS, voici les 3 principaux:
- Le schéma d’URL : Les URLs HTTPS commencent par “https: //” et utilise le port 443 par défaut, tandis que les URLs HTTP commencent par “http: //” et utilisent le port 80.
- La sécurité : HTTP n’est pas sécurisé et est soumis à de nombreuses attaques, qui peuvent laisser des attaquants avoir accès à des informations sensibles, en revanche un site Web tout en HTTPS est conçu pour résister et protéger contre de telles attaques.
- Les couches réseau : HTTP fonctionne sur la couche la plus élevée du modèle TCP/IP qui est la couche application. Le protocole sécurisé SSL lui fonctionne comme une sous-couche inférieure du même modèle TCP/IP, mais il crypte le message HTTP avant sa transmission et la déchiffre à l’arrivée. On peut donc dire que HTTPS n’est pas un protocole séparé, mais se réfère à l’utilisation du HTTP ordinaire via une connexion SSL cryptée.
Pourquoi utiliser le HTTPS pour WordPress ?
En préambule, le HTTPS est particulièrement utile sur les réseaux non cryptés (tel que le réseau Wi-Fi), ou n’importe qui sur le même réseau local peut “renifler” via packet sniff les données et accéder des informations sensibles.
Lorsque vous servez du contenu depuis votre site via HTTPS, vous avez la garantie que personne ne va changer la façon dont les informations sont reçues par les utilisateurs. Si vous faites du business en ligne, vous aurez besoin du SSL. C’est la meilleure façon de protéger les données de vos utilisateurs et de vous défendre contre l’usurpation d’identité.
De plus en plus d’internautes refusent d’effectuer des transactions sur un site qui ne dispose pas d’un certificat SSL. Au final, afficher son certificat SSL sur le site indique aux clients qu’ils peuvent faire leurs achats et utiliser votre site Web en toute confiance et qu’ils seront protégés.
Pour un meilleur référencement ? Les sites sécurisés via SSL bénéficient en outre, d’un avantage pour leur référencement dans les pages de résultats de recherche. C’est ce qu’a annoncé Google qui inclut aujourd’hui le chiffrement des sites à sa liste de critères de positionnement. Je reste fortement mitigé sur la prime SEO/HTPPS et je vous invite à lire cet article.
Un certificat SSL pour commencer !
Acheter un certificat SSL
Il existe de nombreux sites qui proposent l’achat de certificats SSL : Media Temple, GoDaddy, SSLs.com, OVH, Comodo et Namecheap.
Pour ma part, j’ai choisi Namecheap pour son excellent rapport qualité/prix et sa procédure simplifiée, à partir de 7€/ans pour leur certificat PositiveSSL.
Quel certificat choisir ?
Il existe différents types de certificats SSL :
- Validation Domaine c’est le certificat type et généralement le moins cher. Ces certificats permettent le cryptage de base, sont délivrés très rapidement et nécessitent une simple vérification pour la propriété du domaine.
- Validation Entreprise : Ces certificats incluent l’authentification de l’entreprise et/ou de l’organisation propriétaire du domaine.
- Validation Étendue : Avec ce type de validation, l’autorité de certification procède à un examen en profondeur de votre entreprise avant d’émettre le certificat. Ce certificat SSL offre le plus haut degré de sécurité.
Plus d’infos sur les différents certificats dans l’article quel certificat choisir?
Certificat SSL gratuit
Désormais la plupart des hébergeurs proposent gratuitement des certificats SSL Let’s Encrypt. Tout aussi performants que des certificats payants, Let’s Encrypt est autorité de certification à but non lucratif fournissant leurs certificats TLS à 180 millions de sites Web.
Activer son certificat SSL
Il existe autant de possibilités que d’hébergements et la procédure est différente selon votre fournisseur (dédié, VPS, Mutualisé,…) aussi je ne détaillerais pas l’installation sur mon serveur dédié Apache, toutefois pour ceux que cela intéresse, rendez-vous sur https://support.comodo.com/installation-apache-mod_ssl.
Pour les hébergements mutualisés, renseignez-vous auprès de vos hébergeurs, certains proposent des certificats SSL dans leurs offres.
Attention à la faille SSL 3 POODLE
Une équipe de Google a récemment mis en lumière une faille de sécurité dans le protocole SSL utilisé pour chiffrer les échanges de données entre un navigateur et un site web. Mise en oeuvre, elle permet à un hacker de se faire passer pour sa victime et d’accéder à des données privées sur un service tel qu’un webmail ou le serveur d’une banque.
Cette vulnérabilité SSL a été baptisée “POODLE” pour Padding Oracle On Downgraded Legacy Encryption. Elle utilise une ancienne version 3 du protocole SSL, sortie il y a 15 ans, qui assure le chiffrement d’une transaction. Une autre méthode plus robuste et plus répandue existe néanmoins: TLS 1.0. Cependant des sites web utilisent toujours SSLv3 pour assurer une compatibilité avec Internet Explorer 6 dans Windows XP. Surtout la technique sait simuler un problème de connexion et forcer un navigateur à basculer de TLS à SSLv3. Plus d’information sur cette faille Poodle SSLv3.
Pour s’en prémunir, il vous faudra donc désactiver le SSL v3 sur votre serveur. Le mode d’emploi est à lire chez www.digitalocean.com/protect-poodle-sslv3.
Enfin pour vérifier la qualité de votre certificat SSL, il vous suffit de tester votre domaine sur le site de https://www.ssllabs.com.
Déménager WordPress de HTTP –> HTTPS
Pour placer votre WordPress en HTTPS, nous l’avons vu, vous devez nécessairement obtenir un certificat SSL pour votre nom de domaine, l’installer sur le serveur et enfin changer les permaliens du site de HTTP en HTTPS.
Avant de démarrer votre passage en HTTPS, n’oubliez pas de SAUVEGARDER votre base de données.
Tous les liens dans WordPress (tels que les images jointes, CSS des thèmes, fichiers JavaScript) sont liés à l’URL d’installation, aussi pour changer votre WordPress de http en https, l’URL d’installation doit être changée: de http://monsite.com en https://monsite.com
Connectez-vous à votre tableau de bord WordPress et accédez à Réglages>>Général. Assurez-vous que l’ adresse de WordPress (URL) et l’adresse du site (URL) soient bien en https.
Pour activer facilement (et imposer) l’administration de WordPress sur SSL, la constante FORCE_SSL_ADMIN doit être réglée sur “TRUE” dans votre fichier wp-config.php pour forcer toutes les connexions et toutes les sessions d’administration à se produire sur SSL.
define ( 'FORCE_SSL_ADMIN' , true);
Vérifiez également que les URLs d’installation ne soient pas spécifiées en dur dans le fichier wp-config.php. Cette technique offre l’avantage de bloquer le réglage dans l’administration et évite ainsi une erreur de manipulation qui serait liée à un changement accidentel d’URL. Voici un exemple pour WPFormation :
define('WP_HOME', 'https://wpformation.com');
define('WP_SITEURL', 'https://wpformation.com');
Si votre WordPress utilise un réseau de diffusion de contenu (CDN) pour servir ses composants (images, JavaScript, feuilles de style CSS), vérifiez que toutes les URLs soient bien en HTTPS sinon le certificat de votre site ne sera pas jugé satisfaisant par les navigateurs Web.
Que faire après le passage en HTTPS ?
Maintenant que WordPress a été déplacé avec succès en HTTPS, il reste encore quelques petites choses à faire!
N’oublions pas de rediriger ! Pour configurer une redirection 301 permanente, ajoutez le code ci-dessous dans votre fichier .htaccess.
RewriteEngine on RewriteCond% {HTTP_HOST} ^ votresite.com [NC, OR] RewriteCond% {HTTP_HOST} ^ www.votresite.com [NC] (*). RewriteRule ^ $ https: //www.votresite.com/$1 [L, R = 301, NC]
Recherchez ensuite toutes les URLs commençants par http://… dans vos contenus. Pour ce faire, affichez simplement le code source de vos pages, on a parfois de vraies surprises…
Forcer le https pour les URLs canoniques de votre site et c’est d’autant plus facile si vous utilisez le plugin SEO by Yoast (à régler depuis SEO>>Permaliens)
Il existe des plugins WordPress pour le HTTPS, personnellement je ne m’en suis pas servi mais cela pourra toujours être utile:
- Really Simple SSL est l’extension tout-en-un, très facile à mettre en place et à configurer
- WordPress Https qui force la redirection HTTP vers HTTPS
- Wp Force Https pour les images & éléments que vous auriez oublié
- SSL Insecure Content Fixer pour les éventuels problèmes de contenu mixte
Enfin, n’oubliez pas d’informer Google via Google Webmaster Tools de ce changement. Il suffit de valider votre nouveau domaine en HTTPS et de déclarer le transfert.
La check-list après le passage en HTTPS
Pour ne rien oublier, assurez-vous de :
- Rediriger en HTTPS (301) via htaccess
- Changer toutes les URLs dans votre base de données en HTTPS
- Mettre à jour votre robots.txt
- Déclarer votre site en HTTPS à Google Search et renvoyer un sitemaps
- Modifier votre code Google Analytics et le vérifier
- Tester votre site en HTTPS : www.ssllabs.com/ssltest/
Voilà ce tuto est terminé, j’espère qu’il vous sera utile !
Et vous, comptez-vous passer votre WordPress en HTTPS ?
Pour le moment je reste en http. Comme toi j’ai un doute sur l’efficacité du https vis à vis du SEO et je pense qu’il est carrément inutile d’activer le ssl sur un site purement informatif… j’espère ne pas me tromper :-)
Merci pour ce guide pas à pas très complet. Pour l’instant, comme RenaudMG, j’attends un peu car je ne saisis pas le bénéfice pour un site qui n’a pas de transactions particulières avec ses visiteurs. Reste à savoir dans combien de temps le HTTPS sera la norme. Il faudra alors passer en protocole sécurisé pour se fondre dans la masse, mais pour l’instant le signal est plutôt un indice fort que le webmaster d’un site qui ne le nécessite pas est susceptible d’user de toutes les possibilités pour mieux positionner son site.
Super tuto merci.
Pour le SEO, je partage complètement l’avis de Renaud. Quand on fait du SSL, il faut le faire pour les bonnes raisons (des transactions sécurisées), pas seulement pour le référencement.
Excellent tuto, clair et bien détaillé.
Je partage l’avis des commentateurs, le https pour tout ne se justifie pas. Quel intérêt pour un blog basique ou un site vitrine de passer en https ? Pour moi, strictement aucun.
On verra si Google “force” ou plutôt incite à passer en https en donnant des bons points.
Merci pour l’article, très utile. Je garde ça dans un coin :)
A+
Bonjour,
d’après ce que j’ai compris, tout les pages n’ont pas besoin d’être fournie via le SSL, seul la protection des pages sensibles (paiement, login etc…) est nécessaire (les requètes qui passent par le SSL sont plus lentes), d’où l’utilité des plugins WordPress cités : ils permettent de choisir là où c’est plus utile.
Cette règle est citée sur make.wordpress.org :
Bonjour,
merci pour cet article, si on prend la formule simple à 7€, savez-vous s’il est possible de faire le faire fonctionner sur un hébergement mutualisé chez OVH ? Ou faut-il abolument avoir un serveur dédié ?
Merci d’avance pour votre réponse.
@Belette, cela ne fonctionnera pas car il faut avoir la main sur le serveur, ce qui n’est pas le cas avec un mutualisé! Vous êtes coincés avec l’offre OVH ou alors vous changez d’hébergeur/hébergement…
Ok, c’est bien ce que je pensais, merci pour votre réponse @WPFormation
Excellent article. Merci !
Google a récemment indiqué que les sites sécurisés via le protocole SSL bénéficieront bientôt d’un “ranking boost” pour inciter les webmasters et entreprises à contribuer à un Internet plus sûr.
Migrer dès aujourd’hui un site de HTTP à HTTPS aura un impact trop peu significatif, ceci-dit ça ne coûte pas grand chose d’y passer.