X
    Categories: Uncategorized

Et si on passait WordPress en HTTPS ?

secure

Après les récentes annonces publiées par google relative à une mise à jour de Chrome. Celui affichera dès Janvier 2017 un message sur les sites qui ne sont pas sécurisé. Il est donc intéressant de faire un petit point sur la nécessité ou non d’activer le protocole HTTPS sur votre site web.

Avant tout, entendons nous bien sur le terme HTTPS; une petite définition Wikipedia s’impose:

L’HyperText Transfer Protocol Secure, plus connu sous l’abréviation HTTPS — littéralement « protocole de transfert hypertexte sécurisé » — est la combinaison du HTTP avec une couche de chiffrement comme SSL ou TLS.

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 (et faisant généralement partie de la liste blanche des navigateurs internet). Il garantit théoriquement la confidentialité et l’intégrité des données envoyées par l’utilisateur (notamment des informations entrées dans les formulaires) et reçues du serveur. Il peut permettre de valider l’identité du visiteur, si celui-ci utilise également un certificat d’authentification client.

WikipediaLa Source

Pour faire simple, HTTPS va nous permettre d’avoir une couche de sécurité en plus durant l’échange entre le client et le serveur. De plus, niveau SEO, c’est mieux, pour des centaines de raisons que google explique ici : .
Vous me direz ? HTTPS est connu depuis longtemps, tu ne nous sert à rien David ! Effectivement le standard est un peu ancien cependant avec les nouvelles prérogatives de Google, ce protocole va devenir un incontournable. Google affichera dès 2017 un gros message bien moche sur votre page si celle ci n’est pas en HTTPS.

« – Mais dit moi jamy? Comment savoir si mon site est en HTTPS ou pas ? »

-« Il suffit se connecter Fred ! l’information est directement communiquée dans la barre d’adresse. »

« Ok top ! Maintenant comment avoir le mien ? « 

Plusieurs solutions s’offrent à vous, la première est de passer par un certificat gratuit avec Let’s encrypt, la seconde, plus onéreuse, revient à acheter un certificat à un tiers de confiance comme OVH mais ici les tarifs sont un peu plus « salés » !
Voici un exemple d’un tiers de confiance réputé, voici GlobalSign et ses propositions de certificats:

Type de Certificat SSL

Les certificats SSL à validation étendue (EV) : l’Autorité de Certification (AC) vérifie que l’organisation en question possède le droit exclusif d’utilisation du nom de domaine et soumet celle-ci à un audit très approfondi. Depuis 2007, les règles du CA/B Forum définissent les étapes strictement obligatoires que doivent suivre les Autorités de Certification afin de pouvoir émettre un certificat SSL à validation étendue. Ces étapes comprennent :

La vérification de l’existence légale, physique et opérationnelle de l’organisation

La vérification de l’exactitude des informations transmises sur l’organisation (adresse, n° de téléphone)

La vérification du droit exclusif d’utilisation du nom de domaine par l’organisation en question

La vérification de l’accord de l’organisation pour l’émission du certificat

Les certificats EV SSL sont disponibles pour tous types d’entreprises, que ce soit des agences gouvernementales et des entreprises enregistrées ou non constituées en société. D’autres règles appelées l' »EV Audit Guidelines », indiquent les critères obligatoires que les Autorités de Certification doivent remplir afin de pouvoir émettre des certificats SSL à validation étendue. Un audit vérifiant que ces critères sont bien rempli est conduit chaque année.

Les certificats SSL à validation de l’organisation (OV) : l’AC vérifie que l’organisation en question possède le droit exclusif d’utilisation du nom de domaine pour lequel elle souhaite recevoir le certificat et soumet celle-ci à certaines vérifications. Les informations vérifiées apparaissent également dans le sceau de site sécurisé, pour une confiance accrue de la part des visiteurs.

Domain Validation (DV) SSL Certificates : l’AC vérifie que l’organisation en question possède le droit exclusif d’utilisation du nom de domaine pour lequel elle souhaite recevoir le certificat. Aucune information sur l’identité du demandeur n’est affichée dans le certificat ou le sceau de site sécurisé.

Lequel est le mieux ? je dirais qu’il existe un certificat par Besoin, à vous de choisir quel niveau de sécurité vous voulez offrir à vos clients.

Personnellement je suis parti sur un certificat let’s encrypt sur un de mes sites web.
NOTE : Si vous êtes chez OVH ou encore gandi en serveur mutualisé, vous pouvez facilement activer cette option dans votre Panneau d’administration

Maintenant le TUTO !

Le processus dépend de votre type d’hébergement, dédié ou mutualisé, les manipulations sont différentes.

1/ Processus sur un serveur Mutualisé:
-> Achetez et activez directement dans le panneau d’administration de votre hébergeur l’option SSL, chez OVH c’est actuellement gratuit avec let’s encryt. Un seul clic suffit.

ovh_https_mutualise

Procesus sur un serveur dédié avec un Plesk ou un cPanel
-> Dans le panneau d’administration, il faut installer le module let’s encrypt puis valider la demande

plesk_letsencrypt

Processus sur un serveur dédié nu:
-> Pour cette manip il faut avoir des petites notions d’admin pour préparer la génération du certificat. Le lien suivant fonctionne très bien sur les distributions Ubuntu:
Tutoriel pour ubuntu

2/ On va paramétrer WordPress pour qu’il exploite le standard https. Je vous invite à faire une petite save des fichiers, de la bdd et un export XML de votre site. (on sait jamais .

A/ le htacces, tout rediriger en HTTPS

<code>
# Redirection vers HTTPS
RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://monsite.com/$1 [R=301,L]

# Redirection du www vers non-www en HTTPS
RewriteCond %{HTTP_HOST} ^www\.monsite\.com [NC] RewriteRule ^(.*)$ https://monsite.com/$1 [R=301,L]

OU si vous êtes en WWW
# Redirection vers HTTPS
RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://www.monsite.com/$1 [R=301,L]

# Redirection du www vers non-www en HTTPS
RewriteCond %{HTTP_HOST} ^monsite.com [NC] RewriteRule ^(.*)$ https://www.monsite.com/$1 [R=301,L]

</code>

B/ Checker sur CryptoReport  l’état de votre domaine, de votre certificat et des failles potentielles auquel il est exposé.

C/ Modifier la bdd, passez les url en https. Heureusement ici, des supers scripts existent pour vous faciliter la tache, notamment Search and Replace DB que vous trouverez à l’adresse suivante : Search and Replace DB

Téléchargez le script et Upload à la racine de votre site en renommant son dossier (par exemple « test import ») ;
Indiquez l’adresse de votre site SANS HTTPS dans le champ replace : http://monsite.com (et sans / à la fin !) ;
Indiquez l’adresse de votre site AVEC HTTPS dans le champ with : https://monsite.com (et toujours pas de / à la fin !) ;
Cliquez sur dry run pour faire un test ;
Cliquez sur live run pour lancer le replacement ;
Cliquez sur delete me pour supprimer le script de votre serveur.

Cette manipulation permet de s’assurer que tout les liens enregistrés en base de donnée passent en https.

D/ Direction Réglage->Général et modifier l’adresse du site web.

https_wordpress_reglage_generaux

E/ Ultime étape: la vérification
Si votre thème et vos pages sont bien codées avec des url relatives, vous ne devriez pas avoir de problème. Cependant ce n’est pas le cas de tous les thèmes. Pour se faire rien de tel qu’utiliser l’inspecteur chrome à l’onglet Console. Cet outil affichera les script/feuilles css chargées en http.

F/ Passer le BackOffice en HTTPS en ajoutant la ligne dans le fichier wp-config.php :

<code>
define(‘FORCE_SSL_ADMIN’, true);</code>

Maintenant votre site est entièrement en HTTPS, en cas de problèmes ou questions contactez moi sur contact@de-abreu.fr .

Si vous gérez aussi l’aspect SEO de votre site, je vous invite à aller visiter votre Google Search Console pour enregistrer de nouveau votre site avec https.
Puis un passage sur Google Analytics dans Admin > Propriété > Paramètre de la propriété et sélectionnez https:// pour URL par défaut :
ATTENTION toutefois au réseaux sociaux. Si vous avez partagez vos posts/pages en affichant des compteurs de partage, ceux-ci reviennent à 0 !!
Evidemment puisque l’url n’est plus la même ! Heureusement des plugins comme Social Warfare existe pour contourner ce problème. Vous le trouverez à l’adresse suivante.
Site de Social Warfare

Conclusion

Je vous invite toutes et tous à passer en HTTPS si vous avez la possibilité de le faire. Même un certificat Let’s Encrypt vaudra mieux que rien. Prochainement nous verrons comment passer un site PrestaShop en https.

Dites moi dans les commentaires comment c’est passé votre passage en https et quels difficultés avez-vous rencontré ?

Par ailleurs, si vous avez envie d’en savoir plus, je vous invite à consulter un article plus complet sur WP Marmite – Dossier Complet

.: