Inventaire solutions ACME
Guide de lecture
|
Cet article est la partie 5 de notre série “ACME”. Pour une navigation aisée au sein de cet article, une table des matières est disponible sur le côté droit. |
Inventaire des solutions pour mettre en œuvre le protocole ACME
Le protocole ACME (Automated Certificate Management Environment) a révolutionné la manière dont les certificats SSL/TLS sont gérés, en permettant une automatisation poussée de leur émission, renouvellement et révocation. Pour mettre en œuvre ACME, diverses solutions existent, allant des clients autonomes aux serveurs d’autorité de certification (AC) complets, en passant par des bibliothèques pour les développeurs et des services intégrés.
Voici un inventaire des principales solutions permettant de mettre en œuvre le protocole ACME :
1. Clients ACME Autonomes
Ces logiciels sont installés sur un serveur ou une machine et communiquent avec un serveur ****ACME (comme celui de Let’s Encrypt) pour obtenir et gérer les certificats.
- Certbot (Electronic Frontier Foundation) : Le client ACME le plus connu et souvent recommandé par Let’s Encrypt. Écrit en Python, il est très polyvalent, supporte de nombreux plugins pour une intégration automatique avec des serveurs web comme Apache et Nginx, et gère les renouvellements automatiques. Idéal pour les serveurs Linux.
- acme.sh : Un client ACME écrit entièrement en shell (compatible POSIX, Bash, Dash). Il est très léger, ne nécessite pas Python, et est apprécié pour sa simplicité d’installation et sa capacité à fonctionner dans des environnements variés. Il supporte la validation DNS via de nombreux fournisseurs d’API DNS, ce qui le rend populaire pour les certificats wildcard.
- win-acme (anciennement letsencrypt-win-simple) : Un client ACME populaire et simple d’utilisation pour Windows et IIS (Internet Information Services). Il offre une interface en ligne de commande et peut créer et installer automatiquement les certificats pour les sites IIS, ainsi que gérer les renouvellements via des tâches planifiées.
- Posh-ACME : Un module PowerShell pour Windows, Linux et macOS qui fonctionne comme un client ACME. Il permet de créer des certificats depuis des AC compatibles ACME et offre une grande flexibilité grâce à PowerShell.
- Lego (par go-acme) : Un client ACME et une bibliothèque écrits en Go. Il est multiplateforme et supporte de nombreux fournisseurs DNS pour la validation DNS-01. Peut être utilisé comme un outil en ligne de commande ou comme une bibliothèque dans des applications Go.
- GetSSL : Un client ACME écrit en Bash, axé sur la simplicité et l’automatisation, souvent utilisé dans des scripts personnalisés.
- uacme : Un client ACME léger écrit en C, avec un minimum de dépendances, adapté pour les systèmes embarqués ou les environnements où les ressources sont limitées.
- step-cli (Smallstep) : Un outil en ligne de commande polyvalent pour la gestion de PKI, qui inclut des fonctionnalités de client ACME pour interagir avec des CA ACME publiques ou privées (comme Smallstep Certificate Manager).
2. Solutions Intégrées (Serveurs Web, Reverse Proxies, Plateformes)
Ces logiciels intègrent nativement ou via des modules dédiés la fonctionnalité client ACME, simplifiant la gestion des certificats pour les services qu’ils hébergent ou gèrent.
- Caddy Server : Un serveur web moderne qui se distingue par sa gestion HTTPS automatique par défaut. Il intègre un client ACME et obtient/renouvelle automatiquement les certificats pour tous les sites configurés.
- Traefik Proxy : Un reverse proxy et répartiteur de charge populaire, notamment dans les environnements de conteneurs. Il intègre un support ACME natif, permettant d’obtenir et de renouveler automatiquement les certificats pour les services qu’il expose.
- SWAG (Secure Web Application Gateway) : Une solution conteneurisée basée sur Nginx et Certbot (par LinuxServer.io). Elle simplifie la mise en place d’un reverse proxy sécurisé avec gestion automatisée des certificats.
- Apache HTTP Server (avec
mod_md
) : Le modulemod_md
permet à Apache de gérer directement les certificats via le protocole ACME, y compris l’obtention et le renouvellement. - Nginx : Bien que Nginx n’ait pas de client ****ACME intégré nativement de la même manière que Caddy ou Traefik, il est très couramment utilisé avec des clients externes comme Certbot ou acme.sh. Des solutions comme le module
ngx_http_acme_module
existent également. - cert-manager (pour Kubernetes) : Un contrôleur populaire pour Kubernetes qui automatise la gestion des certificats. Il s’intègre avec diverses sources d’émission, y compris les serveurs ACME, pour fournir des certificats aux Ingress et autres ressources Kubernetes.
- Proxmox Virtual Environment (PVE) : La plateforme de virtualisation Proxmox VE intègre un client ACME pour sécuriser son interface web et potentiellement d’autres services.
- Synology DSM (DiskStation Manager) : Le système d’exploitation des NAS Synology permet d’obtenir des certificats Let’s Encrypt via une interface graphique, utilisant un client ACME en arrière-plan.
- Plesk et cPanel : Ces panneaux de contrôle d’hébergement web intègrent des fonctionnalités pour obtenir et gérer des certificats SSL/TLS via ACME (principalement Let’s Encrypt).
- Haproxy : Peut être configuré pour utiliser des certificats gérés par des clients ACME externes (comme acme.sh). Il existe aussi des scripts ou des intégrations basées sur Lua pour une gestion plus directe.
3. Logiciels Serveur ACME
Ces solutions permettent de mettre en place sa propre Autorité de Certification (AC) compatible ACME, utile pour des environnements internes, de test, ou pour des fournisseurs d’hébergement souhaitant offrir leurs propres certificats.
- Boulder (Let’s Encrypt) : Le logiciel serveur ACMEutilisé par Let’s Encrypt. C’est une solution open source écrite en Go, conçue pour une haute disponibilité et une grande échelle. Complexe à mettre en place pour des besoins simples.
- Smallstep Certificate Manager : Une solution de PKI privée qui peut fonctionner comme une autorité de certification ACME. Elle est conçue pour être facile à utiliser et s’intègre bien avec les outils DevOps.
- EJBCA (Enterprise JavaBeans Certificate Authority) : Une solution PKI open source (avec une version Entreprise) qui supporte le protocole ACME, permettant de mettre en place une AC interne ou publique.
- Keyfactor EJBCA : Version entreprise de EJBCA, offrant un support ACME robuste pour la gestion du cycle de vie des certificats.
- pebble (Let’s Encrypt) : Un petit serveur ACME, également développé par Let’s Encrypt, conçu spécifiquement pour les tests des clients ACME. Il n’est pas destiné à être utilisé comme une AC de production.
knrdl/acme-ca-server
(GitHub) : Un exemple de serveur ACME auto-hébergé, souvent utilisé pour des environnements de développement ou de test.
4. Bibliothèques ACME (pour les développeurs)
Ces bibliothèques fournissent les briques logicielles nécessaires pour intégrer la fonctionnalité client (ou parfois serveur) ACME dans des applications personnalisées.
Go
go-acme/lego
: Très populaire, utilisée par de nombreux clients et outils écrits en Go.golang.org/x/crypto/acme
: Une bibliothèque officielle maintenue par l’équipe Go.
Python
certbot
(et ses composantsacme
etcertbot-libs
) : Les bibliothèques sous-jacentes de Certbot peuvent être utilisées pour développer des outils ACME.acme-tiny
: Un client ACME très minimaliste en Python, souvent utilisé comme exemple ou pour des besoins simples.
PHP
kelunik/acme-client
acmephp/core
etacmephp/acmephp
- Plusieurs autres bibliothèques sont disponibles via Packagist.
Node.js / JavaScript
greenlock.js
(anciennementletsencrypt.js
)- De nombreux modules sur npm pour interagir avec ACME.
Java
shredzone/acme4j
PJAC (Pure Java ACME Client)
Rust
acme-lib
instant-acme
rustls-acme
C# / .NET
ACMESharpCore
(et ses prédécesseurs)- Des bibliothèques sont souvent intégrées dans des clients comme
win-acme
.
5. Services d’Autorités de Certification (AC) supportant ACME
Ce sont les entités qui émettent les certificats. Elles opèrent des serveurs ACME auxquels les clients se connectent.
- Let’s Encrypt : L’AC la plus connue utilisant ACME, fournissant des certificats DV (Domain Validated) gratuits.
- ZeroSSL : Propose des certificats DV gratuits via ACME, ainsi que des options payantes.
- Buypass Go SSL : Une AC norvégienne proposant des certificats DV gratuits via ACME.
- DigiCert : Une AC commerciale majeure qui supporte ACME pour certains de ses produits, permettant d’automatiser l’émission de certificats OV (Organization Validated) et EV (Extended Validation) en plus des DV.
- Sectigo : Une autre grande AC commerciale offrant le support ACME pour l’automatisation de divers types de certificats.
- GlobalSign : Propose également l’automatisation via ACME pour ses certificats.
- Certigna (DHIMYOTIS) : Une AC française qui propose des services de certificats avec support ACME.
- De nombreuses autres AC plus petites ou spécialisées commencent également à offrir un support ACME.
Cet inventaire montre la richesse de l’écosystème ACME, offrant une multitude d’options pour automatiser la gestion des certificats SSL/TLS, que ce soit pour un simple site web personnel, une grande infrastructure d’entreprise, ou pour développer des outils personnalisés. Le choix de la solution dépendra des besoins spécifiques, de la plateforme utilisée et du niveau d’intégration souhaité.