Aujourd’hui, la génération de certificats SSL/TLS pour les sites exposés sur Internet est largement facilitée grâce à Let’s Encrypt et aux différents clients ACME disponibles. En revanche, pour les applications internes, notamment lorsque l’on ne souhaite pas les exposer sur Internet, il est nécessaire de s’appuyer sur une autorité de certification interne, comme ADCS (Active Directory Certificate Services).
Dans ce cas, l’émission d’un certificat peut rapidement devenir assez contraignante et nécessiter plusieurs manipulations :
- effectuer la demande de certificat ;
- soumettre la demande à l’autorité de certification ;
- générer le certificat ;
- exporter le certificat au format PFX ;
- convertir le PFX en certificat et clé privée ;
- configurer le virtualhost avec le certificat.
Cela représente finalement beaucoup d’étapes pour une opération relativement simple. De plus, dans un environnement où les opérations de niveau T0 sont limitées à un nombre restreint d’administrateurs, comme cela peut être le cas avec une infrastructure Active Directory, la génération d’un simple certificat peut rapidement devenir dépendante de la disponibilité de ces personnes.
Je me suis donc penché sur ce problème afin de simplifier et d’automatiser la gestion des certificats internes. L’objectif est de disposer d’une solution ACME interne, permettant aux services et aux administrateurs d’obtenir et de renouveler automatiquement leurs certificats, sur le même principe que Let’s Encrypt.
C’est ici que Step-CA intervient. Cette autorité de certification permet de mettre en place une infrastructure ACME interne et ainsi d’automatiser une grande partie du cycle de vie des certificats.
Dans ce tutoriel, nous allons voir comment déployer Step-CA en tant que sous-autorité de certification de votre ADCS. Cette approche permet notamment de conserver la chaîne de confiance existante de l’entreprise et d’éviter d’avoir à déployer le certificat racine propre à Step-CA sur l’ensemble des postes et serveurs.
Présentation de Step-CA
Step-CA est une autorité de certification open source développée par Smallstep . Elle permet de mettre en place une infrastructure de gestion des certificats pour les environnements internes, les serveurs, les applications et les services d’une entreprise.
Contrairement à une autorité de certification traditionnelle, dont l’utilisation peut nécessiter plusieurs manipulations manuelles, Step-CA propose des mécanismes permettant d’automatiser l’émission et le renouvellement des certificats, notamment grâce au protocole ACME.
Step-CA peut ainsi être utilisé pour délivrer des certificats TLS aux applications internes, aux reverse proxies comme Nginx, ou encore aux différents services hébergés sur une infrastructure Docker, sans avoir à exposer ces services sur Internet.
Il est également possible d’intégrer Step-CA dans une infrastructure de certification existante. Dans ce tutoriel, nous allons nous appuyer sur ADCS (Active Directory Certificate Services) pour signer le certificat de l’autorité Step-CA et l’intégrer à la chaîne de confiance de l’entreprise.
