Tutoriel : comment migrer mon site en https ?

Dรฉvoilez le vrai du faux des secrets du SEO avec nos experts certifiรฉs.



Je vous en parlais dans mon article sur la migration d’url lors de la refonte de site mais aprรจs quelques รฉchanges sur twitter, la procรฉdure complรจte nรฉcessitait d’รชtre dรฉtaillรฉe. Si aprรจs cet article vous avez encore des questions n’hรฉsitez pas ร  le dire dans les commentaires, je complรฉterai ce tutoriel. Migrer votre site en https correspond ร  la mise en place d’un certificat ssl pour que votre site soit accessible sur l’ensemble de ses pages via une url qui dรฉmarre par https. C’est l’une des pratiques du moment en terme de  seo technique on site.

migration en ligne

Pourquoi migrer son site en HTTPS ?

Mettre son site web en https va permettre de rassurer. Vous rassurerez deux groupes de personnes, vos clients et google. En effet le https sous l’engouement global tend ร  devenir une norme. Aussi vos clients auront plus tendance ร  accorder leur confiance si votre site est en https que si il est en http. C’est pour l’instant assez discret mais rappelez vous les scandales liรฉs ร  la vie privรฉe sur facebook, les dรฉbuts du e-commerce ou un paiement par carte bancaire faisaient peur ? Dรฉsormais vous pouvez rassurer vos utilisateurs en passant en https. Passer son site en https permet aux donnรฉes d’รชtre cryptรฉes avant de sortir de votre ordinateur et dรฉcryptรฉes une fois sur le serveur de votre site. Entre autre terme, une personne ou un logiciel pirate malveillant qui intercepterait des informations privรฉes les recevraient cryptรฉes et aurait donc plus de mal ร  les lire. Il est dรฉsormais facile pour un visiteur / client de reconnaรฎtre un site en https :

Comment savoir si le site que je visite est sรฉcurisรฉ avec un certificat ssl ?

Au delร  de la simple image cadenas de rรฉassurance que n’importe qui peut mettre, un indice dans la barre d’adresse de votre navigateur permet de savoir si le site est sรฉcurisรฉ:

  • Site non sรฉcurisรฉ :
absence certificat ssl
  • Site sรฉcurisรฉ de niveau 1
certificat ssl niveau 1
  • Site sรฉcurisรฉ de niveau 2 (certificat EV)
certificat ssl ev

le site de symantec (รฉditeur de certificats) utilise un certificat de type EV


Dรฉsormais firefox et chrome vous prรฉviennent tous les deux en cas d’absence de certificat ssl sur le site. Si le site est simplement non sรฉcurisรฉ vous aurez une alerte discrรจte comme celle indiquรฉ ci-dessus. Si le site est en https mais sans certificat ou avec un certificat non sรฉcurisรฉ la navigateur indiquera un รฉcran d’erreur qui ressemblera ร  ceci :

faux https chrome

Rendu d’un site avec une urls https sans certificat sous chrome

faux https firefox

Exemple d’une url https qui n’a pas de certificat ssl sous firefox

La migration en https a-t-elle un impact sur le rรฉfรฉrencement ?

On peut lรฉgitimement se demander si le passage en ssl amรฉliore ou diminue les perfs en SEO. De ma propre expรฉrience, j’ai vu de nombreux changement accompagner les migrations SEO, il est donc complexe de dire si ce point seul รฉtait responsable d’une amรฉlioration. On peut de maniรจre certaine dire que c’est un signal positif envoyรฉ ร  google. On pourra sans doute bientรดt parler de malus http plutรดt que de bonus https. La partie bonus sur le positionnement de votre site ayant รฉtรฉ dรฉmentie par @mรฉthode :

tweet https bonus rank

Chrome a annoncรฉ passรฉ ร  partir des version de mi 2017 faire une indication non sรฉcurisรฉe ร  la moindre donnรฉes transmise hors https, et pas uniquement qu’un mot de passe. Du cรดtรฉ des risques si la procรฉdure qui va suivre est exรฉcutรฉe correctement il n’y a pas de risque de perte de pagerank. En effet google via Gary Illyes a indiquรฉ dรจs mi 2016 qu’une redirection 301 n’impliquait plus de perte de pagerank.

pas de perte pagerank

Une migration peut en revanche avoir un lรฉger impact sur les perfs liรฉ au chiffrement en accroissant le temps de rรฉponse mais ce point est normalement minime. Sur les diffรฉrents site https que je gรจre j’ai des pages qui rรฉpondent en moins de 0.5s mรชme aprรจs passage en https. Je n’ai pas vu de changement significatifs. A mon sens si on fait en sorte de limiter le nombre de requรชtes apaches (javascript multiple et css par exemple) le temps de chargement ne s’en trouve pas dรฉgradรฉ.

Quels sont les diffรฉrents types de certificats https et leurs prix ?

Du certificat gratuit au certificat wildcard payant il existe plusieurs solutions adaptรฉes ร  tous les budgets.

Les certificats gratuits de let’s encrypt

Let’s encrypt est une organisation a but non lucratif qui propose des certificats de type DV (domain validation) gratuitement. Cette organisation est sponsorisรฉe par de grands acteurs du web comme mozilla, facebook, chrome, ovh, cysco etc… Vous trouverez plus d’informations sur leur site: https://letsencrypt.org/. A noter qu’un certificat let’s encrypt doit รชtre renouvelรฉ tous les 3 mois. Ce renouvellement peut รชtre rรฉalisรฉ via un cron pour vous รฉviter d’oublier. Dans tous les cas si vous avez fait l’installation comme il faut, il vous enverra un mail pour vous prรฉvenir de l’expiration.

Les certificats payant et leurs tarifs

A titre d’exemple j’ai choisi de me rรฉfรฉrer au tarifs de thawte , je tiens ร  prรฉciser que je n’ai pas de liens avec eux. Ils ont simplement des certificats ร  tarifs abordables. A titre de comparaison on aura un รฉcart de 5x moins cher que les tarifs de chez symantec (ex very sign). Dans le cadre d’un certificat payant il faut ร  mon sens choisir entre deux certificats : Soit l’extended validation (EV) celui qui inscrit le nom de l’entreprise et donnait l’ancien effet ยซย barre verteย ยป et un certificat de type Organization Validation (OV) en multi domaine. Le premier valable pour un unique domaine dรฉmarre ร  249? annuel pour une garantie de 1.5 millions de $ US et le second couvre autant de sous domaine que vous le souhaitez pour un tarif de 549? annuels et une garantie de 1.25 millions de $ US. Vous trouverez tous les tarifs ici : https://www.thawte.fr/ssl/. Le renouvellement de certificat payant se fait par tranche minimum de 1 an, รฉvidement plus longtemps il est valide, plus vous envoyez un signal positif ร  google. (Tout comme pour les noms de domaine)

Payant vs gratuit : comment choisir?

Au delร  du budget qui sera sans doute votre premier critรจre, il faut prendre en compte la garantie et le signal envoyรฉ par le dรฉlai de validitรฉ. Un site non marchand sans grande ambition SEO pourra prendre un let’s encrypt alors qu’un site marchand aura tout intรฉrรชt ร  arborer un certificat EV avec une garantie รฉlevรฉe.

Quelles sont les รฉtapes et comment effectuer l’installation d’un certificat SSL ?

Avant tout, la mise en place est certes longue et mรฉthodique mais elle n’est pas risquรฉe si l’on suit bien toutes ces รฉtapes. Vous allez le voir il y a un avant, un pendant et un aprรจs.

Etape 1 – Faire un audit des urls existantes avant la migration

Deux cas de figure soit vous passez juste de http ร  https soit vous changez รฉgalement le format de vos urls. Dans le premier cas, il vous faut analyser votre code (ou directement en Base de donnรฉes si vous maitrisez le mysql) pour dรฉtecter si vos pages contiennent des urls vers des pages ou des ressources de type CSS, JS ou image en absolue de type http. une image appelรฉe <img src=ย ยปmedia/logo.jpgย ยป /> migrera automatiquement alors que <img src=ย ยป/media/logo.jpgย ยป /> posera problรจme car l’url est inscrite en dur. Dans le second cas il est important d’avoir deux version accessibles de votre site. une prod en http et une prรฉ-prod en https par exemple. L’idรฉe est d’รฉtablir une liste sous excel de l’ensemble des urls de l’ancien site (PROD) et du nouveau site (prรฉprod) en vue d’รฉtablir un plan de migration d’urls.

Etape 2 – Faire un plan de migration de vos URLs

Nous allons ainsi faire un rรฉsumรฉ des best pratices dรฉcrites dans mon article :  Comment corriger les erreurs 404 et garder le seo lors d’une migration de site ?. Cette seconde รฉtape de ce tutoriel ce divise en 3 parties.


1. Prรฉvoir les changements dans le code, les cms et oรน par requรชtes SQL des contenus appelรฉs avec une url inscrite en dur.


2. Prรฉvoir un mapping des anciennes urls dont le format change vers les nouvelles. exemple:

RewriteRule ^magento$ /e-commerce/magento [L,R=301]

3. Mettre en place un mapping dynamique pour tout le reste. exemple :

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Les รฉtapes 2 et 3 sont ร  rรฉaliser dans votre fichier .htaccess , il est important de mettre les redirections dynamique en fin de fichier.

Etape 3 – Obtention et configuration du certificat

Le certificat let’s encrypt s’obtient via l’installation d’un package sur votre serveur et un certificat payant suite ร  validation de certaines รฉtapes prouvant votre identitรฉs. Il vous sera par exemple demandรฉ de rentrer vos coordonnรฉes dans un annuaire public type pages jaunes, ensuite on vous appellera sur le numรฉro de cet annuaire et รฉchangera avec vous des codes de sรฉcuritรฉ par email avant de finalement vous envoyer le certificat par mail. (oui on perd un peu de sรฉcuritรฉ lร , c’est paradoxal). (Si vous souhaitez un tuto sur la mise en place d’un certificat let’s encrypt demandez le moi dans les commentaires) Vous devrez ensuite paramรฉtrer votre serveur web pour installer le certificat. Cette configuration se passe au niveau apache ร  qui vous devrez dire d’รฉcouter le port 443 et non plus le port 80.

<IfModule mod_ssl.c>
<VirtualHost *:443> # indication du port 443 en รฉcoute
ServerAdmin pvalibus@gmail.com
ServerName www.valib.us #le servername ne prend pas de prรฉfixe http ou https
ServerAlias valib.us #idem pour le server alias
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" #cette ligne vous servira dans le cadre de HSTS (voir ร  la fin de l'article)

... #ici il faut mettre vos directory, config de log etc...

SSLCertificateFile /etc/letsencrypt/cert/fullchain.pem #lien vers la full chain transmise par let's encrypt ou autre
SSLCertificateKeyFile /etc/letsencrypt/cert/privkey.pem #lien vers la full chain transmise par let's encrypt ou autre
Include /etc/letsencrypt/options-ssl-apache.conf #fichier de configuration ssl let's encrypt
</VirtualHost>
</IfModule>
Attention si vous utilisez en plus de Apache, un tandem nginx et varnish, il vous faudra รฉgalement inclure le certificat dans la configuration nginx. Dans ce dernier cas votre htaccess devra prendre cette forme, car le X-Forwarded proto permet de passer les informations du proxy

RewriteCond %{HTTP:X-Forwarded-Port} !443
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP:X-Forwarded-Port} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Etape 4 – Configurer votre CMS pour https

Dans cette section je vais vous expliquer comment migrer votre wordpress ou votre magento en https. Pour les autres cms ou dev spรฉ, les rรฉglages ne doivent pas beaucoup changer, et bien sur les autres รฉtapes du tutoriel restent valides car transverses ร  tout chantier d’installation ssl.

Comment configurer Magento en https pour prendre en compte le SSL ?

  • Le point positif est que les rรฉglages magento 1 et magento 2 sont quasiment identiques. Accรจs magento 1 : Dans le menu ยซย Systemย ยป -> Section ยซย configurationย ยป -> Groupe ยซย Generalย ยป -> Item ยซย Webย ยป
  • Accรจs magento 2 : Dans le menu ยซย Storeย ยป -> Section ยซย configurationย ยป -> Groupe ยซย Generalย ยป -> Item ยซย Webย ยป
configuration https magento

Comment configurer wordpress en https et activer l’utilisation du certificat ssl?

Du cรดtรฉ de wordpress on se rendra simplement dans les paramรฉtrages du menu ยซย rรฉglagesย ยป puis dans gรฉnรฉral on activera les urls ci-dessous. Contrairement ร  magento wordpress n’a pas besoin du / final.

configuration https wordpress

Si vous utilisez nginx + varnish, le reverse proxy impliquera un rรฉglage supplรฉmentaire pour le ssl sur le port 443. il faudra aller รฉditer la fonction is_ssl() de wordpress dans wp-include/load.php

function is_ssl() {

if ( isset($_SERVER['HTTPS']) ) {
if ( 'on' == strtolower($_SERVER['HTTPS']) )
return true;
if ( '1' == $_SERVER['HTTPS'] )
return true;
} elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
return true;
} elseif ('https'==$_SERVER['HTTP_X_FORWARDED_PROTO']||'443'==$_SERVER['HTTP_X_FORWARDED_PORT']){
return true;
}
return false;
}

Etape 5 – Tester la configuration du certificat ssl

Il existe plusieurs outils gratuits pour vรฉrifier que votre certificat est bien mis en place. Je vous conseil les deux ci-dessous.

Outil de test rapide de configuration apache ssl

Le premier, le plus rapide vous donnera dรฉjร  un bon premier aperรงu: https://www.sslshopper.com/ssl-checker.html qui si tout se passe bien vous indiquera uniquement des cases ร  cocher vertes.

test ssl shoper

Le test complet de votre certificat sรฉcurisรฉ sur ssl labs (plus long)

Je ne vous apprends rien si je vous dis qu’il n’est pas envisageable de viser moins que A+, aprรจs tout si vous avez lu l’article jusque lร  c’est que vous voulez faire une vrai installation SSL sur votre serveur. L’avantage du test de ssl labs qui est plus long (environ 1 minute) c’est qu’il test aussi votre serveur sur certaine faille comme la faille ยซย OpenSSL Padding Oracle vuln. (CVE-2016-2107)ย ยป. Ce test est accessible ร  l’url suivante : https://www.ssllabs.com/ssltest/

test ssllabs

Etape 6 – activer le plan de migration dans le .htaccess

Maintenant que tout est prรชt et que votre site est accessible en https, vous pouvez activer votre plan de redirection. Pour cela il faut mettre ร  jour votre fichier .htaccess sur votre serveur. Il faut le prรฉparer en รฉtape 2 mais ne l’uploader qu’ร  ce moment, surtout si vous avez un fort trafic, google risque de commencer ร  crawler des redirections vers des https non activรฉes et du coup obtenir une 404 ou pire une unsecure.  Rappelez vous ici de bien commencer par l’url redirigรฉe finement, puis les redirections dynamiques et enfin la redirection globale par dรฉfaut http vers https.

Etape 7 – Tester la prise en compte des ressources en https

Comme je vous l’indiquais il ne faut pas oublier de vรฉrifier que tous les liens internes d’une page sont bien en https. il suffit d’une image appelรฉe en http au sein d’une page pour perdre la validation https de la page. Pour รฉviter de type de dรฉconvenue, dรจs la mise en ligne de votre migration il faudra faire un crawl du site avec screaming frog. L’objectif sera de repรฉrer les pages qui ont des restes de http, souvent ce sont des images rentrรฉes en ยซย durย ยป.

screaming frog https

Etape 8 – la configuration des outils de suivis

Dans le cadre de votre migration, il va falloir modifier les rรฉglages dans webmaster tools (search console) et analytics. Analytics est trรจs rapide ร  rรฉgler, webmaster tools un peu moins.

Comment activer le https dans google analytics

L’avantage d’analytics est qu’il n’est pas nรฉcessaire de faire un changement de propriรฉtรฉs ou de vue, on ne perdra donc pas d’informations. Pour activer le paramรฉtrage il faut se rendre dans administration choisir votre propriรฉtรฉs et activer https dans la liste dรฉroulante comme dans la capture ci-dessous. Attention (et me demander par pourquoi) il faut รฉgalement l’activer dans la ou les vues rattachรฉes ร  la propriรฉtรฉs.

rรฉglages analytics https

Une fois le rรฉglage sauvegardรฉ, il n’est pas nรฉcessaire de mettre ร  jour le code de tracking sur votre site.

Comment activer le https dans la search console (google webmaster tools) ?

De ce cรดtรฉ lร  c’est un peu plus compliquรฉ. Vous allez perdre des donnรฉes car vous ne pas juste ยซย switcherย ยป. Il va falloir crรฉer non pas une autre propriรฉtรฉ mais bien 2 ร  3. Globalement il faut crรฉer les propriรฉtรฉs suivantes:

  • http://valib.us
  • https://www.410-gone.fr
  • https://valib.us
  • https://www.410-gone.fr

Vous allez donc vous retrouver avec un accueil de la console un peu ยซย encombrรฉย ยป avec ceci :

crรฉer propriรฉtรฉs https search console

Pourquoi crรฉer autant de propriรฉtรฉs me direz vous? Tout simplement pour รชtre sur de tracker l’รฉvolution des urls indexรฉes sur ces diffรฉrents rรฉglages . Comme vous pouvez le voir dans le graphique ci-dessous, j’ai fait un montage pour venir greffer la courbe d’un site sur la propriรฉtรฉs http sur sa nouvelle vue https. Au fur et ร  mesure que les urls de l’https apparaissent (souvent d’un coup) les urls http elles peuvent mettre du temps ร  disparaรฎtre.

migration https webmaster tools

Courbe de avant (en rouge) et aprรจs https (en bleu) sur le nombre de page indexรฉes

Comme vous vous en doutez vous allez donc perdre un peu d’informations. Pour finir dans webmaster tools il va falloir paramรฉtrer votre domaine favori en vous plaรงant sur la roue en haut ร  droite dans la vue www et https et sรฉlectionner l’url comme dans la capture ci-dessous :

paramรจtres de site par dรฉfaut webmaster tools

Etape 9 – Suivre rรฉguliรจrement l’รฉvolution

Votre objectif ici va รชtre de suivre rรฉguliรจrement la progression de l’indexation https mais รฉgalement de la dรฉsindexation http. Pour ce faire, je vous invite ร  utiliser 2 outils, le premier trรจs simple, la commande site: dans google. Nous allons nous en servir pour chercher les urls du site et retirer celle en http via la commande inurl. Ce qui donnera cela :

site:https://www.410-gone.fr -inurl:https://www.410-gone.fr


(comme vous le verrez ร  l’instant ou j’รฉcris ces lignes, il y a encore un peu de patience ร  avoir auprรจs de google me concernant. (Mais avec tous les backlinks que vous allez faire vers cet article รงa va aider ร  accรฉlรฉrer en principe non ? ๐Ÿ™‚ ) La seconde solution sera d’utiliser oncrawl ou botify pour suivre la progression des urls indexรฉes.

Conclusion

Tout d’abord, merci d’avoir lu jusque lร , j’espรจre que vous aurez ร  la suite de ce tutoriel tout compris sur la migration en https. L’idรฉe derriรจre ces explication est de vous รฉviter de vous retrouver avec un site en duplicate content ร  la fois indexรฉ en http et en https. Bien sur si vous avez des questions, n’hรฉsitez pas ร  m’รฉcrire dans les commentaires ouย  prendre rendez-vous pour que je vous accompagne pendant votre migration.