Categories
Informatique

Beta test de Letsencrypt

Après être passé longtemps par des certificats auto-signés, [très] mal acceptés par beaucoup d’outils et navigateurs sans un message d’erreur qui faisait peur à la plupart de mes visiteurs, puis par une autorité de certification mal reconnue également, puis enfin par un fournisseur de certificat plutôt pas mal mais qui demandait beaucoup d’info personnelles, est arrivé letsencrypt qui a lancé un projet de fournir des certificats SSL gratuitement tout en étant une autorité de certification reconnue.

Pour information, un certificat SSL est relativement excessif avec un coût variable en fonction des “assurances” couvertes par le contrat. Dans mon cas, je n’ai rien à assurer coté données potentiellement volables (du verbe voler), mon site n’étant pas un site e-commerce et ne stockant aucune information bancaire (vous pouvez m’envoyer les infos de votre CB par email, no problem ;-)).

Comme vous le savez, mon site se consulte de manière chiffrée, via TLS (plus communément appelé “SSL” mais là, je vais me faire basher par les pro.).

Ça vous est confirmé par le petit “s” que vous distinguez dans la barre d’adresse en haut de la fenêtre de votre navigateur favori.

Attention: le “s” ne prouve pas que la communication est chiffrée mais que l’échange entre votre navigateur et le serveur passe par le protocole https. Pour faire simple, si le serveur en face dit à votre navigateur “okay pour parler via le protocole https mais on chiffre pas, on passe en clair” et que votre navigateur accepte (car pas assez sécurisé/restrictif), la communication sera en clair. Bon, ça c’est ce que j’en ai compris, je vous laisse consulter le site d’Aeris qui vous en dira un beaucoup plus si ce point vous intéresse.

Bref, pour pouvoir chiffrer cette communication comme il se doit, il faut que le serveur possède un certificat SSL que le client va récupérer…. encore bref, c’est la techno de chiffrement SSL/TLS que je vous laisse consulter sur le net, je vais pas vous la refournir ici.

Je me suis donc inscrit à leur beta pour tester leurs certificats (information ici: https://letsencrypt.org/2015/11/12/public-beta-timing.html) et j’ai reçu récemment un e-mail contenant les instructions nécessaires pour obtenir/générer un certificat.

Les voici telles que je les ai appliquées.

Téléchargement des outils et scripts initiaux (il faut git client d’installé sur la machine):

binerf@server:~$ git clone https://github.com/letsencrypt/letsencrypt
Cloning into 'letsencrypt'...
remote: Counting objects: 24392, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 24392 (delta 20), reused 0 (delta 0), pack-reused 24350
Receiving objects: 100% (24392/24392), 6.28 MiB | 3.10 MiB/s, done.
Resolving deltas: 100% (17072/17072), done.
Checking connectivity... done.
binerf@server:~$ ./letsencrypt-auto --help

Bon, ne connaissant pas vraiment encore ce que fait cet outil (et étant de l’ancienne génération comme on dit, donc méfiant ;-)), je ne veux obtenir qu’un certificat et non qu’il me reconfigure mon Apache (en plus, ma conf est plutôt moisie pour être honnête, y en a partout)

binerf@server:~$ ./letsencrypt-auto certonly -a manual -d www.mygaia.org \
  --server https://acme-v01.api.letsencrypt.org/directory --agree-dev-preview

Oui, ça tourne avec les droits root (via sudo recommandé).

Le script va alors téléchargé les packages manquants sur votre install linux (ici, Debian) et exécuter le reste.

Une fois terminé, j’ai dû m’y reprendre à plusieurs reprises parce que mon DNS n’était pas bien configuré, vous avez vos certificats dans /etc/letsencrypt/live/www.mygaia.org/ avec la liste des fichiers suivante:

  • cert.pem -> ../../archive/www.mygaia.org/cert2.pem (pour apache, ce sera à associer à SSLCertificateKeyFile)
  • chain.pem -> ../../archive/www.mygaia.org/chain2.pem (pour apache, ce sera à associer à SSLCertificateFile)
  • fullchain.pem -> ../../archive/www.mygaia.org/fullchain2.pem (pour nginx)
  • privkey.pem -> ../../archive/www.mygaia.org/privkey2.pem (pour apache, ce sera à associer à SSLCertificateChainFile)

Le 2 que vous voyez au bout des liens, c’est ma deuxième tentative pour générer le certificat (la première fois, j’ai merdé).