Passer WordPress de HTTP à HTTPS

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;)

https-ssl-wordpress

Définitions SSL & HTTPS

Commençons tout d'abord par quelques définitions et rappels :

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 !

https-secure-wordpress

La différence entre HTTP & HTTPS

Il y a de nombreux critères qui différencient HTTP de HTTPS, voici les 3 principaux:

  1. 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.
  2. 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.
  3. 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.

http-vs-https

Pourquoi utiliser le HTTPS ?

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.

wpseveur-secure

 

Un certificat SSL pour commencer !

Acheter un certificat SSL

Il existe de nombreux sites qui proposent l'achat de certificats SSL : Media Temple, GoDaddySSLs.comOVH, 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 :

  1. 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.
  2. Validation Entreprise : Ces certificats incluent l'authentification de l'entreprise et/ou de l'organisation propriétaire du domaine.
  3. 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?

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.

namecheap1

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.

test-ssl-wpserveur

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.

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.

administration WP

 

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);

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 ensuite ?

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)

reglages-yoast-https
Il existe des plugins WordPress pour le HTTPS, personnellement je ne m'en suis pas servi mais cela pourra toujours être utile:

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.
Voilà ce tuto est terminé, j'espère qu'il vous sera utile !

Et vous, comptez-vous passer votre WordPress en HTTPS ?
Sources & autres ressources pour cet article :

A propos de l'auteur...

WPFormation

Fabrice Ducarme, formateur WordPress je suis éditeur, auteur et fondateur du site WP Formation.com. Conférencier lors des WordCamp Paris 2013 & 2015 ainsi qu'au WP Tech Nantes 2014, je vous propose plus de 400 articles & tutoriaux à propos de WordPress, mes trucs & astuces mais aussi des coups de gueule...

11 commentaires pertinents à ce jour ;)

  • RenaudMG dit :
    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 :-)
  • Julien dit :
    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.
  • Aurélien Debord dit :
    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.
  • Jérôme dit :
    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.
  • Greg dit :
    Merci pour l’article, très utile. Je garde ça dans un coin :)
    A+
  • X-Raym dit :
    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 :

    HTTPS increases security with the cost of Server’s computing power. There is absolutely no need to serve a HTTPS webpage, when there is no question of any privacy. For example this webpage. Moreover it takes more time to get a HTTPS webpage rendered on Browser when compared to a HTTP webpage.

  • belette dit :
    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.
  • WPFormation dit :
    , 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…
  • belette dit :
    Ok, c’est bien ce que je pensais, merci pour votre réponse
  • Karl / regardsurlemonde.fr dit :
    Excellent article. Merci !
  • David dit :
    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.
Tweet132
Share37
Share17
Buffer87