- NGINX a dévoilé une version preview prenant en charge nativement le protocole ACME, qui automatise l’émission et le renouvellement des certificats SSL/TLS
- Grâce au nouveau module
ngx_http_acme_module basé sur Rust, il devient possible de demander, installer et renouveler des certificats uniquement via la configuration NGINX, sans outil externe
- Cela réduit la dépendance à des outils externes comme Certbot et améliore la sécurité ainsi que l’indépendance vis-à-vis de la plateforme
- La version initiale prend en charge le challenge HTTP-01 ; la prise en charge de TLS-ALPN et DNS-01 est prévue par la suite
- La prise en charge d’ACME devrait aussi jouer un rôle important dans l’automatisation de la sécurité au-delà du web, notamment dans les environnements IoT et edge computing
Vue d’ensemble et principaux changements
- NGINX a publié une version preview de la prise en charge du protocole ACME
- Le nouveau module
ngx_http_acme_module est conçu pour permettre de gérer directement, depuis la configuration NGINX, la demande, l’installation et le renouvellement des certificats
- Cette prise en charge d’ACME s’appuie en interne sur le NGINX-Rust SDK et est fournie sous forme de module dynamique basé sur Rust
- Cette fonctionnalité est disponible aussi bien pour les utilisateurs open source que pour les clients enterprise de NGINX Plus
- En réduisant la dépendance à des outils externes comme Certbot, elle améliore la sécurité et l’efficacité de la gestion des certificats
Présentation du protocole ACME
- Le protocole ACME (Automated Certificate Management Environment) est un protocole de communication qui automatise l’émission, la validation, le renouvellement et la révocation des certificats SSL/TLS
- Grâce à une communication automatisée avec la CA (Certificate Authority), le client peut gérer directement le cycle de vie des certificats sans intervention manuelle d’un intermédiaire
- Il a été développé et publié en 2015 par l’Internet Security Research Group (ISRG) dans le cadre du projet Let’s Encrypt
- Avant l’arrivée d’ACME, le processus d’émission des certificats était plus manuel, plus coûteux et plus exposé aux erreurs
- La version actuelle, ACMEv2, ajoute diverses fonctionnalités comme différents modes de validation et la prise en charge des wildcards, ce qui renforce sa flexibilité et sa sécurité
Flux d’automatisation des certificats avec ACME dans NGINX
- Dans NGINX, l’automatisation du cycle de vie des certificats via le protocole ACME se déroule en 4 étapes
-
1. Configuration du serveur ACME
- Pour activer la fonctionnalité ACME, il faut impérativement spécifier l’URL du répertoire du serveur ACME avec
acme_issuer
- En cas d’émission de certificat, il est aussi possible d’indiquer en option des informations de contact client, le chemin de stockage des données d’état, etc.
-
2. Allocation de mémoire partagée (zone)
- Avec
acme_shared_zone, il est possible de configurer en plus une zone de mémoire partagée pour stocker les certificats, les clés privées et les données de challenge
- La taille par défaut est de 256K, extensible selon les besoins
-
3. Configuration du challenge
- La version preview actuelle ne prend en charge que le challenge HTTP-01, utilisé pour vérifier la propriété du domaine
- Pour cela, il faut définir dans la configuration NGINX un listener sur le port 80 ainsi qu’une réponse 404 par défaut
- La prise en charge des challenges TLS-ALPN et DNS-01 est prévue ultérieurement
-
4. Émission et renouvellement des certificats
- En ajoutant la directive
acme_certificate à un bloc serveur, il devient possible d’automatiser l’émission et le renouvellement du certificat TLS pour le domaine concerné
- Le domaine visé par l’émission du certificat est généralement indiqué via
server_name
- Les expressions régulières et les wildcards dans
server_name ne sont pas pris en charge dans cette version preview
- Les variables du module
$acme_certificate et $acme_certificate_key permettent d’associer automatiquement le certificat et la clé
Principaux avantages
- Le protocole ACME est au cœur de la forte progression de l’usage de HTTPS dans le monde
- L’automatisation de la gestion des certificats réduit fortement les coûts de gestion du cycle de vie des certificats et les erreurs dues aux manipulations manuelles
- La suppression des outils externes permet de réduire la surface d’attaque et d’améliorer la portabilité
- Elle favorise aussi la standardisation de la sécurité dans des environnements variés
Feuille de route
- Ajout prévu de la prise en charge des challenges TLS-ALPN et DNS-01
- Extension des fonctionnalités sur la base des retours utilisateurs
- Avec l’adoption croissante de l’IoT, des API et de l’edge computing, ACME devrait jouer à l’avenir un rôle central dans une infrastructure de sécurité automatisée sur un périmètre toujours plus large
- La prise en charge native d’ACME par NGINX devrait servir de base pour faire de la sécurité web, de l’automatisation et de la scalabilité des standards d’avenir
Bien démarrer
- Les utilisateurs open source peuvent utiliser le module précompilé via les packages Linux NGINX
- Pour les clients enterprise de NGINX Plus, il est fourni sous forme de module dynamique pris en charge par F5
- Voir la documentation du module dans NGINX Docs
Aucun commentaire pour le moment.