Table des matières

Obtenir des certificats SSL Lets Encrypt sur CentOS

Le projet Let's Encrypt permet d'obtenir des certificats SSL non seulement gratuitement, mais aussi de gérer leur renouvellement de manière automatique. Let's Encrypt utilise un protocole standardisé pour la vérification du contrôle du domaine nommé ACME. Il existe plusieurs clients implémentant ce standard, l'un d'entre eux est letsencrypt.sh (écrit entièrement en shell).

Principe de fonctionnement

Le principe de fonctionnement est assez simple. Un client génère en local une pair clé privée/publique, en crée une CSR, et fait une requête aux serveurs de Let's Encrypt pour faire signer cette CSR (notez que la clé privée n'est pas envoyé vers Let's Encrypt, seule la partie publique l'est).

Let's Encrypt va ensuite demander au client de résoudre des challenges pour prouver qu'il est bien en contrôle du/des domaines pour lesquels le certificat est valide. Il existe plusieurs type de challenges différents, le plus simple est la méthode par http. Avec cette méthode, le serveur va demander de mettre à disposition un fichier avec un contenu particulier, sur une adresse précise. Par exemple, le client demande un certificat pour www.domaine.fr

Ce sont les grandes lignes de fonctionnement, il y a d'autres détails, mais le principe est celui-ci

Installation du client

La première chose à faire est d'installer le client letsencrypt:

yum install letsencrypt.sh

Configuration

Plusieurs choses sont à configurer

Dans l'ordre, il faut généralement:

letsencrypt.sh -c
Les URL des challenges ACME doivent être accessibles librement (pas de restriction d'IP source, ni d'authentification), sans quoi les serveurs de Let's Encrypt ne pourront pas faire la vérification, et refuseront de signer le certificat
le fichier de configuration /etc/httpd/conf.d/letsencrypt.sh.conf rend les challenges accessibles pour le vhost par défaut. Il faudra s'assurer que si d'autres vhosts sont utilisés, les mêmes URI soient accessibles