Jean ROCHARD
Je partage ma passion de Wordpress dans des articles techniques sur les plugins, thèmes, nouveautés geek et optimisation SEO "on-site".
Jean ROCHARD

@jean_rochard

Chez Terre Digitale, on mange du Wordpress dès le petit-dej'.
Petit guide pour mettre en place les Facebook Instant Articles à partir de vos posts Wordpress : https://t.co/lSbzdM6z9j - 7 mois ago

Passer un WordPress en mode sécurisé est (quasiment) indispensable lorsque l’on a une activité de type e-commerce sur son site Web. Rien de nouveau. Mais pour les bloggers ou webmasters de sites purement vitrines, on peut se demander quel est l’intérêt de cette migration ? La réponse à cette question a été donnée sur le blog Google webmaster Tools : l’utilisation du protocole encrypté HTTPS est un critère SEO pour Google depuis mi 2014. En clair, avoir un site sécurisé, c’est bon pour votre référencement. Certains n’ont pas vu la différence, moi si ! Voici donc un pas à pas détaillé pour passer votre site WordPress en mode sécurisé.

 

A noter que tous les exemples sont pris pour un hébergement « simple hosting » chez gandi.

HTTPS et certificat SSL, c’est quoi ?

Avant de se lancer dans les étapes techniques, prenons le temps de définir ces termes obscurs :

  • HTTPS est la variante sécurisée du HTTP. C’est donc un protocole d’échange entre un ordinateur client et un serveur Web mais sur un mode sécurisé utilisant le standard SSL. Il permet de chiffrer les données échangées et vous garantit que le site a qui vous vous adressez est bien celui qu’il prétend être (mécanisme d’authentification pour éviter entre autres les attaques de type Man in the middle).
  • Certificat SSL : c’est un certificat numérique qui va authentifier votre site Web auprès des internautes. Il est délivré par une société tierce nommée « Autorité de certification » et doit être payé et renouvelé annuellement. L’hébergeur gandi délivre ce type de certificat. Le coût d’un certificat standard (suffisant pour notre exemple de site vitrine) chez Gandi est de 12 € / an (avec une promotion la première année).

Passer un site WordPress en HTTPS va donc se faire en 3 grandes étapes :

  • obtenir un certificat SSL pour le nom de domaine et l’associer à votre hébergement
  • Migrer votre site WordPress en HTTPS
  • avertir Google de ce changement

Je le rappelle, ce pas à pas est réalisé pour un site hébergé chez gandi en simple hosting. Le principe reste le même pour tout autre hébergeur. Le nom de domaine du site que nous allons sécuriser est également chez gandi. Voici un article pour réaliser le transfert de votre domaine chez gandi au préalable si besoin.

Avant de réaliser ce type d’opérations un peu délicates et souvent « à chaud » (c’est à dire directement sur le site en production), effectuez un backup complet du site et choisissez un créneau avec moins de trafic. Et prévoyez quelques heures devant vous quand même !

Etape 1 : obtenir un certificat SSL

 

Passage de commande du certificat

Vous allez tout d’abord vous rendre dans votre interface de gestion de votre nom de domaine, choisir le domaine que vous voulez sécuriser, et cliquer sur « Acheter un certificat SSL » :

eape0_certificatssl

Choisissez le certificat adapté à votre site (pour cet exemple, je suis dans le cas d’un site vitrine, je prends donc le certificat standard). Vous allez arriver ensuite sur cet écran :

etape1_achatcertificatssl

L’objet principal de cet écran et de vous demander votre CSR. Mais vous n’en avez pas encore ! Une CSR, c’est un fichier qui contient toutes les informations indispensables pour demander votre certificat SSL. Il va falloir en générer une grâce à OpenSSL.

Vous allez pour cela utiliser le générateur de ligne de commande OpenSSL pour CSR fourni par Gandi :

etape2_generateurcsr

Renseignez soigneusement tous les champs de cet écran avec vos propres informations. Notez bien que si votre site est situé sur www.mondomaine.fr et non sur mondomaine.fr, c’est tout de même le domaine sans www qu’il est conseillé (par gandi) de saisir puisque le certificat sera valable pour les 2 adresses.

En cliquant sur « Générer », vous allez obtenir une ligne de commande à copier. Ouvrez maintenant un accès SSH à votre hébergement (soit avec putty soit avec FireSSH pour Firefox par exemple). Rendez-vous au niveau du répertoire de votre nom de domaine (en faisant cd web/vhosts/mondomaine.fr). Ce sera un très bon endroit pour coller et exécuter le ligne de commande OpenSSL que nous venons de copier :

etape3_openssl

Cette commande va vous générer 2 fichiers : un fichier csr et un fichier key. Pour récupérer le code du fichier csr, lancez maintenant dans la console SSH la commande suivante :

cat mondomaine.fr.csr

Le texte qui s’affiche est à copier (vous n’avez qu’à le sélectionner pour qu’il soit copié si vous utilisez putty) et ensuite à coller dans le formulaire de commande de certificat SSL que nous avions laissé en attente. Vérifiez le reste du formulaire et validez. Vous pouvez aller au bout de la commande.

Validation des contacts et du domaine

Vous allez alors recevoir un premier mail pour confirmer votre adresse mail (lien à cliquer). Un autre mail vous confirme aussi que le processus d’achat de certificat SSL est lancé.

C’est maintenant le processus de validation qui démarre ; avec l’arrivée d’un 3ème mail (intitulé « Procédure de validation de votre certificat SSL Standard »). Il contient un lien vers l’interface suivante :

etape4_validationdomaine

Il vous faut donc maintenant valider vos droits sur le domaine. Cela peut être fait par mail, configuration DNS ou par upload de fichier sur votre site. J’ai choisi ici de récupérer le fichier d’authentification et de l’uploader à la racine de mon site par FTP (avec FireFTP par exemple).

Le processus de vérification est automatisé et va vérifier toutes les 30 minutes si votre domaine est valide (si le fichier est présent dans mon cas). Quand le robot détectera que vous avez les droits que le domaine, vous recevrez un dernier mail vous confirmant l’activation de votre certificat SSL. Cette étape peut prendre jusqu’à une journée ; elle peut aussi prendre 10 minutes ! Dans ce mail, vous avez un lien vers une interface qui vous permettra de récupérer votre code CRT. Copiez le, il va servir tout de suite.

Associer le certificat SSL à votre hébergement simple hosting

Maintenant que vous avez le précieux sésame, rendez vous sur votre hébergement simple hosting, et cliquez sur « Activer un certificat SSL » au bout de la ligne correspondant au vhost de votre domaine à sécuriser. L’interface est la suivante :

etape5_certificatsh

Collez le certificat CRT dans la case certificat ; et récupérez la clé privée sur votre hébergement (vous savez, c’est le 2ème fichier .key qui avait été généré par OpenSSL un peu plus haut ; faîtes cat mondomaine.fr.key et copiez le code).

Vous pouvez alors valider cet écran et vous féliciter d’avoir installer votre certificat SSL. Maintenant, il faut migrer le site !

Etape 2 : migrer votre site WordPress en HTTPS

 

Modification du fichier wp-config.php

Tout d’abord, nous allons indiquer à WordPress que le site est en HTTPS. Ajoutez la ligne suivante dans le fichier wp-config.php (il est situé à la racine du site) :

define ( 'FORCE_SSL_ADMIN' , true)

 

Changement des adresses et liens du site de HTTP vers HTTPS

Plutôt que de juste migrer le nom principal du site dans les réglages WordPress et d’aller modifier partout les liens où il y a « http » pour le transformer en « https », nous allons procéder de la même façon que si le site était migré d’un domaine vers un autre.

Pour cela, je vous conseille de télécharger le script gratuit WordPress Search And Replace. C’est un répertoire (avec des scripts PHP) à placer à la racine de votre site par FTP (il est recommandé de renommer ce répertoire avant de le placer sur votre serveur, on ne sait jamais !). Tapez dans l’URL l’adresse de ce répertoire et l’interface suivante va vous proposer le texte à chercher et la valeur à remplacer :

srdb

Vous l’avez deviné : remplacez « http://domaine.fr » par « https://domaine.fr ». Ainsi, tous les éléments trouvés en base de données seront modifiés avec la nouvelle adresse. Bien sûr, c’est à cette étape qu’il est important d’avoir effectué un backup de la base avant de cliquer sur « valider » !

Configuration des plugins et des affichages particuliers (type iframe)

Il se peut que certains de vos plugins puissent être configurés pour SSL, c’est le cas par exemple de WordPress SEO pour les URL canoniques. Egalement, videz les caches de vos plugins de performance.

Plus important, si vous intégrez des vidéos youtube par une iframe sur votre site, il faudra les appeler en https et non en http pour que l’affichage se déroule normalement. La documentation à ce sujet est ici.

De la même façon, attention à tous les contenus embarqués en iframe que vous avez intégré, ils seront à vérifier !

Robots.txt et sitemap

N’oubliez pas d’impacter votre fichier robots.txt et éventuellement votre sitemap !

Etape 3 : avertir Google du changement

La documentation Google vous explique les points importants lorsque l’on déplace un site (c’est le cas lors du passage en HTTPS). Cette documentation est à suivre point par point !

Mettre en place des redirections 301

Votre site fonctionne maintenant parfaitement en HTTPS mais il reste les redirections à mettre en place ! Nous allons pour cela créer des redirections permanentes (301) de la version HTTP vers la version HTTPS.

Pour cela, plusieurs moyens :

  • au niveau du domaine (redirections web permanentes, accessibles par l’interface gandi)
  • au niveau du fichier.htaccess (situé à la racine du site)

Pour le fichier .htaccess, voici un exemple de configuration que vous pouvez ajouter (en haut du fichier) :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.mondomaine.fr/$1 [L,R=301]
</IfModule>

Ces lignes redirigeront toutes les requêtes vers la version HTTPS de votre site. C’est un peu brutal mais dans bien des cas, cela fonctionne. Ces lignes seront à adapter en fonction de votre environnement et de l’utilisation que vous faîtes de votre site WordPress.

Grâce à ces redirections, les moteurs de recherche vont être au courant de la migration ; vous n’avez rien d’autre à faire qu’à attendre le passage du prochain crawl du googlebot !

Assurez vous aussi que votre page d’erreur 404 (page non trouvée) fonctionne bien.

Modifications sur les comptes Google (Webmaster tools, Analytics…)

Pour les Webmaster tools, vous n’avez pas à faire de demande de changement d’adresse, l’outil se débrouillera avec votre protocole HTTPS. De même pour Analytics, vous pouvez le laisser identique (mais vous pouvez aussi activer l’option forceSSL).

Enfin, vous pouvez aussi mettre à jour votre compte Google MyBusiness avec la nouvelle adresse du site et votre signature mail par exemple.

Et maintenant ?

Vous pouvez repasser votre site sous Google Page Speed pour vérifier si tout est ok et si votre notation a évolué. Le protocole HTTPS peut coûter légèrement en terme de performance mais pas au point de vous disqualifier aux yeux de cet outil Google.

Côté sécurité, attendez 24h que les configurations DNS se propagent et vous pourrez tester la qualité de votre certificat SSL. Ce n’est pas très utile (dans le cas de notre site vitrine) mais ça fait toujours plaisir. Vous aurez aussi maintenant l’icône du cadenas qui s’affichera à côté de vos URL.

testssl

Concernant le référencement, il peu y avoir un gain sensible de référencement suite à ce passage en SSL. D’autres sites n’ont vu aucun changement. Selon Google, seul 1% des requêtes étaient concernées en 2014 mais cela a pu évoluer depuis. Quoiqu’il en soit, plus vous le ferez tôt, et plus vous aurez une longueur d’avance sur la concurrence puisque de toute façon la direction du SSL a été entérinée par Google.