Les certificats LetsEncrypt et le protocole ACME¶
Let's Encrypt fournit gratuitement des certificats serveurs signés par une autorité de certification reconnue par les navigateurs et les systèmes. L'idée de base est de lever le frein financier pour la généralisation de l'utilisation de HTTPS.
Principe¶
La création des certificats s'appuie sur le protocole ACME qui est mis en oeuvre via une API. Ce protocole contrôle la propriété des domaines avec des challenges apportant soit :
- La preuve du contrôle du serveur (challenge HTTP)
- La preuve du contrôle du domaine (challenge DNS).
En pratique¶
- certbot permet de gérer la création de certificat en ligne de commande pour des serveurs nginx, apache,...
- Des outils tel traefik intègrent la création automatique de certificats LetsEncrypt.
- lego automatise le traitement des challenges DNS en faisant appel à l'API des providers.
- cert-manager utilisable en contexte Kubernetes met lui à disposition une implémentation du protocole ACME.
Intérêt des challenges DNS¶
Les challenges DNS sont particulièrement intéressant pour les cas d'utilisation suivant :
- Création d'un certificat pour des applications non exposées sur internet (ex : site intranet)
- Création d'un certificat wildcard
Mise en garde¶
- L'autorité de certification intermédiaire doit être diffusée au niveau du serveur web (i.e. de configurer le serveur web avec fullchain.pem)
- Firefox embarque la CA racine et la CA intermédiaire, ce n'est pas le cas des store ubuntu et ça pose problème pour des clients en ligne de commande tel
curl
.
- Firefox embarque la CA racine et la CA intermédiaire, ce n'est pas le cas des store ubuntu et ça pose problème pour des clients en ligne de commande tel
- www.sslshopper.com permet de vérifier que c'est bien le cas si le domaine est exposé.
- L'utilitaire openssl sera votre ami si ça se complique.