Ca fait un moment que Google nous rabbache qu’il faut passer en HTTPS, que c’est mieux pour les utilisateurs, qu’il y a un boost SEO etc. Mais commander un certificat SSL, comment ça se passe ? Et que me faut-il comme type de certificat ? On va essayer de répondre à tout ça dans cet article, avec en prime la petite démo pour mettre ça en place sur les VPS OVH.Au delà du bien fondé, discutable, de cette pratique, avoir un site full HTTPS, ça rassure, et ça évite quelques ennuis de type “man-in-the-middle”, une attaque au cours de laquelle un pirate intercepte les données transitant entre le DNS et votre serveur…
Ai-je besoin d’un certificat SSL ?
C’est la première question que vous vous posez. On va faire simple :
- votre site existe déjà depuis un moment, il se positionne bien sûr les mots-clés que vous avez attaqués et vous ne faites pas de vente en ligne : n’installez pas de certificat SSL
- votre site débarque, n’a pas beaucoup de liens et ne se positionne pas encore dans la serp : vous pouvez installer un certificat SSL, que vous fassiez de la vente en ligne ou pas
A quoi sert un certificat SSL ?
Contrairement aux idées répandues, un certificat SSL ne sécurise pas votre site. Un certificat SSL peut faire deux choses : authentifier et chiffrer. Quelques détails sur ces deux notions…
L’authentification
Un certificat SSL peut contenir un certain nombre d’informations :
- le domaine qu’il sécurise (champ CN)
- le nom de la société qui le détient (champ O)
- l’adresse de la société (la ville du siège social) (champ L)
- son département (champ ST)
- son pays (champ C)
- le nom du service auquel est rattaché le certificat (champ OU)
Ces données permettent donc d’authentifier le certificat, le site, et tout ce qui peut s’y rapporter. Mais ça ne va pas plus loin. Au moins, ça permet de savoir que la société qui a commandé le SSL est une vraie société, et pas un truc totalement bidon monté pour une opération de phishing…
Chiffrer
Un certificat SSL est fait pour chiffrer (crypter) tout ce qui est échangé entre un serveur et un client (ou entre un serveur et un autre serveur). Tout ça grâce à des algorithmes de chiffrement. Et la fonction première d’un SSL, c’est de rendre totalement opaque ce qui va être échangé entre deux machines, ceci pour neutraliser les attaques de type Man in the Middle.
Donc, pour revenir à la problématique de base « ai-je besoin d’un certificat SSL », on se demande bien en quoi ça peut être utile de chiffrer ce qui est échangé entre un serveur et un navigateur s’il n’y a aucune information sensible sur un site Internet… Di Madame Michu consulte une recette de tarte au citron, il y a peu de chances que ça intéresse un hacker quelconque.
Pour résumer, si votre site n’a aucune information sensible et qu’il rank déjà, restez comme ça : passer en https, ça va vous faire perdre des positions à cause des redirections que vous mettriez en place entre les URL HTTP et les URL HTTPS.
Si votre site contient des informations sensibles, là, c’est plus délicat, et c’est à vous de trancher : la migration va vous faire perdre quelques positions, que vous retrouverez avec le temps, mais il faudra bien compter sur 10 à 15 % de perte au niveau du jus. Seulement, être en https, ça fait quand même plus sérieux si votre internaute échange des données personnelles avec votre machine.
Et si votre site est tout jeune, tout neuf, tout beau, quel qu’il soit, installez le SSL, car ça va vraiment devenir un standard incontournable sur le Web, d’autant plus que chrome va bientôt afficher des informations anxiogènes pour les sites qui ne seront pas en https.
Quel type de certificat pour votre site ?
Si vous vous allez sur le site d’un revendeur de SSL, vous allez rapidement être perdus entre les différentes normes qu’on peut retrouver, les catalogues sont de vraies usine à gaz. Quelques détails sur les offres et les produits qui vous seront présentés…
Les types d’authentification
Il existe trois types d’authentification pour un certificat SSL. Les Domain-Validated (DV), les Organisation-Validated (OV) et les Extended-Validation (EV).
L’authentification d’un DV ne se fait que sur le nom de domaine. Vous commandez votre certificat, vous recevez un challenge par e-mail de la part de l’autorité de certification, qui s’assure que vous contrôlez bien le nom de domaine concerné, et c’est tout. Votre certificat est émis en quelques minutes, c’est simple, c’est rapide, et le produit chiffrera parfaitement la connexion.
Les OV, eux, ajoute une couche d’authentification supplémentaire, c’est-à-dire que la société qui commande certificat est auditée : on vérifie qu’elle existe bien, qu’elle n’est pas radiée, qu’elle se situe bien là où elle prétend être etc. etc. Perso, je pense que ce type de certificat disparaître avec le temps, car personne ne consulte le contenu d’un certificat quand il arrive sur une connexion sécurisée, pour connaître le propriétaire du-dit SSL.
Les certificats de type EV, eux, permettent d’afficher une barre verte dans l’URL : c’est l’arme marketing absolue quand on veut montrer qu’une connexion est sécurisée. C’est typiquement le genre de certificat qu’on trouve sur une banque, ou sur un gros site e-commerce. L’inconvénient, c’est que ces certificats sont plus coûteux, et qu’ils sont plus délicats à obtenir, car l’audit de la société est beaucoup plus poussé. Il peut prendre plusieurs semaines.
Ça, c’était pour l’authentification. Maintenant regardons ce qui se passe du côté technique.
Qu’est-ce que je sécurise ?
On va regarder uniquement ce qui se passe du côté des certificats serveur (parce qu’on peut également trouver des certificats utilisateur, des certificats pour chiffrer des applications etc…
Le certificat standard
Un certificat SSL classique sécurise un seul nom de domaine. Par exemple : www.gdm–pixel.fr
Le certificat wildcard
Ce certificat sécurise une infinité de sous-domaines, par exemple : *.digital-cookie.io
Ici, cela permettra de sécuriser blog.digital-cookie.io, www.digital-cookie.io, intranet.digital-cookie.io etc…
Le multidomain (ou multiSAN)
Ce type de certificat permet de sécuriser plusieurs nom de domaines, ou des noms de machines, des IP etc. On pourrait par exemple sécuriser : www.digital-cookie.io, www.fifou.me, blog.machin.com etc
A vous de voir ce qui conviendra le mieux à votre besoin. Typiquement, si vous avez un site avec un nom de domaine tout simple à sécuriser, prenez un domain-validated comme dans l’exemple de la vidéo, ça fera parfaitement l’affaire.
Comment se déroule la commande d’un certificat SSL ?
On rentre dans le vif du sujet, et on passe notre commande de certificat. Pour la démo, je passe la commande chez Namecheap. Les certificats sont pas chers, ce sont des certificats bien reconnus par les navigateurs, et il y a vraiment de tout. La plupart du temps, je prends des domaines validated, comme ce sera le cas ici.
La commande un certificat SSL se déroule en deux étapes :
- d’abord on génère sa clé privée et son CSR, qu’on transmet aux revendeurs ou à l’autorité de certification
- on paye sa commande et on attend…
Générer son CSR sous OpenSSL
Un certificat SSL, ça fonctionne avec trois éléments :
- Une clé privée qui est sur votre serveur
- Une clé publique qui est dans le navigateur
- Un certificat
Très schématiquement, quand votre navigateur se connecte en HTTPS à un serveur, le serveur répond à la requête en fournissant son certificat, sa clé privée, et le navigateur répond à tout ça en vérifiant qu’il a bien une clé publique qui correspond dans son magasin de clé publique. Si tout concorde, et que le certificat a été fabriqué par une racine de chiffrement reconnue, la connexion chiffrée s’effectue.
Le processus de fabrication d’un certificat SSL part d’une clé privée, stockée sur votre machine, de laquelle on extraie un CSR (Certificate Signing Request). Le CSR contiendra un extrait de ce que vous voulez comme certificat. C’est votre bon de commande SSL en quelque sorte.
Pour générer votre CSR, il faudra utiliser un logiciel sur votre serveur. Dans l’exemple ici, on est sur un serveur Apache, donc on fera ça avec OpenSSL.
On peut également utiliser un générateur en ligne pour créer sa clé privée et son CSR, mais c’est une mauvaise pratique en terme de sécurité, car ça veut dire que la clé privée n’est plus sous votre contrôle exclusif. Il est préférable de générer vous même la clé sous openSSL.
Pour ne pas avoir à taper la looonnngue requête, je vous ai fait un petit générateur en Javascript : remplissez simplement les champs ci-dessous, et la requête à coller apparaitra ci-dessous (dans l’écran noir). Vérifiez bien que vous n’avez pas fait de faute de frappe !
CSR REQUEST GENERATOR
Adresse à sécuriser Nom de la société Ville Département Pays (code ISO)
Ensuite, c’est l’audit qui prend le relais. Si vous avez opté pour un domaine validated, il faudra simplement répondre à la procédure de DCV (Domain Constrol Validation), qui varie en fonction du mode choisi (par mail, par enregistrement dans la zone DNS de votre domaine, par fichier etc).
Si vous avez choisi un certificat de type Organisation validated, ça se complique un peu.
L’audit d’un certificat de type Organisation Validated
Un certificat de type Organisation Validated contient plus d’informations qu’un simple Domain validated. L’autorité de certification va donc contrôler plusieurs points. Tout d’abord, votre CSR : s’il est mal formaté, que les champs qu’il contient ne sont pas bon (par exemple, dans le champ ville, vous avez mis n’importe quoi), ça ne passera pas, et on vous demandera de refabriquer votre clé privée et votre CSR.
Ensuite, l’autorité de certification vérifie que votre société existe bien : est-elle enregistrée au registre du commerce des sociétés ? Est-elle toujours en cours d’exercice ? Si la réponse négative à une de ces deux questions, le certificat ne pourra pas être émis…
Ensuite l’étape de contrôle du domaine : si le nom de domaine sur lequel vous voulez installer le certificat SSL n’appartient pas à la société qui est mentionnée dans le champ O, on vous demandera un document juridique certifiant votre autorisation à utiliser un SSL sur ce nom de domaine. Sans lui, pas de certificat.
Puis, l’origine de la commande va être vérifiée par appel téléphonique : un opérateur contactera la personne qui a demandé le certificat dans l’organisation, pour lui demander si l’émission du certificat est autorisée.
Pour être sûr que votre certificat soit émis rapidement, il est donc important de prévenir tout les gens impliqués le plus tôt possible, histoire de s’assurer que l’audit se déroule sans accroc.
L’audit d’un certificat de type EV
Bienvenue en enfer ! Ce type de certificat est plutôt difficile à obtenir, il faut vraiment que tout soit carré. Les points de vérification sont très nombreux, plus d’une vingtaine, ce qui peut considérablement ralentir la création du certificat. Et dans certains cas, la demande sera tout simplement impossible : si votre société à moins de trois ans d’existence par exemple, vous ne pourrez pas avoir ce niveau de certification. Et c’est bien dommage, car un certificat de type, c’est un gros plus haut niveau marketing !
Trouver un certificat SSL pas cher
Perso, je passe par Namecheap. C’est rapide, facile, en quelques minutes le certificat est émis et installé. Il faut savoir que les gros brokers cassent vraiment le marché. Par contre, niveau assistance, c’est zéro, même si les FAQ sont bien faites. Le gros lien (affilié) pour aller chez Namecheap est ci-dessous. Vous trouverez tous les types de certificats, pour des prix vraiment intéressants. Je réitère le fondement de ce que vous trouverez sur ce blog : je ne recommande PAS de produits ou de service que je n’utilise pas moi même. Si je conseille, c’est que j’utilise, que ça fait le taf, comme il faut, et que c’est intéressant. Zéro BS.
Et pour installer son certificat
Si vous êtes sur une solution de type C-Panel ou Plesk, tout se passera via le panneau d’administration. Idem pour les serveurs Microsoft. Pour le tuto ci-dessus, on est sur un serveur apache, donc on va devoir faire l’installation à la main, en ligne de commande, en ftp, mais ça, ce sera dans un prochain tutoriel ! Stay Tuned !