Let’s Encrypt – Certificats HTTPS gratuits et automatiques

Créé le: 2016/01/24 ; Révisé le: 2016/11/21
Thumbnail

Pour pouvoir sécuriser un site web en utilisant du cryptage par HTTPS, il faut créer ou obtenir un certificat qui contient le nom du site, possiblement des informations sur l’entreprise, une clé privée et une autre publique. (00:00)

Pour avoir un certificat, il est possible d’en créer un soi-même et de le signer. Cela fonctionne, mais les navigateurs vont se plaindre qu’ils ne peuvent pas certifier que les données sont véridiques. Pour qu’ils ne se plaignent pas, il ne faut pas signer soi-même le certificat, mais passer par une autorité de certification. Ces autorités sont connues des navigateurs lorsqu’ils ont leur certificat racine installé. (00:14)

La majorité du temps, c’est très couteux surtout lorsque tout ce que nous désirons c’est de crypter les requêtes et réponses que notre site envoie.

Dans le passé, StartSSL était bien connu pour leurs certificats gratuits pour un nom de domaine et la possibilité de payer 60$US par année pour avoir des certificats avec plusieurs sous-domaines. (00:40)

Maintenant, il y a un nouveau joueur: Let’s Encrypt qui offre des certificats gratuitement et de manière automatisée. Leur logiciel permet de gérer les certificats dans Apache sans effort. (00:47)

Pour confirmer que c’est bien votre site, en arrière-plan, le programme va placer un fichier à un endroit que Let’s Encrypt demande avec le contenu demandé. Si nous désirons utiliser d’autres méthodes pour prouver qu’il nous appartient, par exemple avec une entrée DNS, nous pouvons communiquer avec le service web directement. (01:10)

Pour les sites que je gère, je ne veux pas utiliser le logiciel fourni puisque je veux pouvoir copier et déplacer les certificats entre les machines. C’est là qu’utiliser le service directement prend tout son sens. Étant donné que mon gestionnaire de serveurs est écrit en Java, j’ai bien apprécié lorsque j’ai découvert qu’une personne avait déjà créé une librairie Java appelée acme4j qui possède une excellente documentation ainsi qu’un exemple clair. (01:25)

Voici les différentes étapes pour ceux qui veulent savoir ce qui se passe en arrière-plan. Veuillez noter que tout se fait de façon programmatique et non par création sur le site: (01:52)

  1. Créer une clé publique et privée. La clé publique va servir de compte. (02:06)
  2. Créer un compte et accepter les termes de service. (02:23)
  3. Demander de valider un nom de domaine. (03:18)
  4. Choisir un défi comme faire une entrée dans le système DNS ou ajouter un fichier sur le site. (03:33)
  5. Exécuter le défi. (04:18)
  6. Créer une paire de clés pour le serveur et ensuite faire une requête de signature de certificat. (05:03)
  7. Télécharger le certificat. (05:59)