Publié le
15 avril 2024
Gérer efficacement les certificats et leurs clés privées est essentiel pour la sécurité de tout système. Windows Server Active Directory Certificate Services (ADCS) offre une plateforme robuste pour gérer les certificats dans un environnement Windows. Toutefois, il peut arriver que vous deviez exporter des clés archivées depuis l'autorité de certification (CA) et les convertir dans un autre format, comme pfx. Cette procédure vous permet de manipuler en toute sécurité ces informations sensibles tout en préservant l'intégrité de votre système.
![[ADCS] Exporter les clés privées archivées depuis la base de données de l'autorité de certification](https://images.ctfassets.net/53cv978o7rlv/1WdDkoMmTDngrBjCfTrn6U/2fcb5b55e167163ca1ab9881f283ee42/-ADCS-_Export_archived_private_keys_from__the_certification_authority_database-2.png)
Prérequis :
Avant de vous lancer dans le processus d'export et de conversion des clés archivées, il est essentiel de vous assurer de disposer des autorisations et outils nécessaires. Vous aurez besoin des autorisations « Manage CA » et « Issue and manage Certificates » sur l'autorité de certification. Vous aurez également besoin d'accéder à des outils tels que MMC (Microsoft Management Console) pour les ajouter et à PowerShell.
Les autorisations sur l'autorité de certification (CA) incluent généralement la capacité à « Manage CA » et à « Issue and manage Certificates », conférant aux utilisateurs l'autorité pour superviser et contrôler l'émission et la gestion des certificats au sein du système.
Pour faciliter ces tâches, divers outils sont disponibles, tels que la CLI comme PowerShell, qui offre flexibilité et capacités de scripting pour une gestion efficace. Par ailleurs, la MMC sert d'interface graphique, permettant aux utilisateurs d'ajouter des composants essentiels tels que Certificate Templates, Certification Authority et Certificates (Users), rationalisant ainsi le processus de gestion.
Pour accéder à ces outils et composants via la MMC, les utilisateurs peuvent suivre ces étapes :
Ouvrir la MMC
Naviguer dans le menu « File »
Sélectionner « Add » ou « Remove Snap-ins »
Activer l'archivage des clés
La première étape consiste à activer l'archivage des clés dans ADCS. Cela implique de configurer les modèles de certificat et la CA elle-même pour archiver les clés privées. Voici comment procéder :
1. Assurez-vous que l'utilisateur courant peut s'enrôler dans un certificat Key Recovery Agent en ajustant les autorisations dans les modèles de certificat. Étapes :
Properties > Security
Note : si le modèle Key Recovery Agent n'est pas disponible dans la section Certificate templates :
Certificate templates > New > Certificate template to issue > Select Key Recovery Agent
2. Enrôlez un certificat à partir du modèle Key Recovery Agent et validez la requête.
Certificates > Current User > Personal > All tasks > Request new certificate.
Ici, enrôlez-vous sur le modèle Key Recovery Agent précédemment émis (la requête de certificat peut nécessiter une validation dans les requêtes en attente de la CA)
3. Configurez la CA pour archiver les clés en sélectionnant le certificat approprié dans l'onglet Recovery Agents.
Allez dans l'onglet « properties » de la CA (qui sera utilisée pour l'archivage des clés) > Dans l'onglet « Recovery Agents », sélectionnez archive the key.
Le certificat Key Recovery Agent précédemment émis devrait vous être proposé.
4. Modifiez le modèle de certificat utilisé pour émettre les certificats afin d'archiver la clé privée de chiffrement du sujet.
Envie de mettre en pratique ces bonnes pratiques PKI ?
Bénéficiez des conseils de nos experts pour déployer des solutions PKI sécurisées au sein de votre organisation.
Demander de l'aide(Placez-vous dans le modèle de certificat qui sera utilisé pour émettre les certificats dont la clé privée doit être archivée) :
Properties > onglet Request Handling > Sélectionnez Archive subject's encryption private key
Désormais, les certificats émis à partir de ce modèle verront leurs clés privées archivées au sein du serveur ADCS.
5. Veillez à rendre ce modèle de certificat disponible dans la liste des Certificate templates dans le composant logiciel enfichable de l'autorité de certification.
Exporter les clés privées archivées
Pour récupérer les clés archivées depuis la base de données de la CA, vous pouvez utiliser la commande suivante dans un dossier où l'utilisateur dispose d'autorisations en écriture :
certutil -getkey {serial number of the certificate}
2. En ajoutant ensuite un nom de fichier, elle peut être enregistrée sous la forme d'un fichier .bin ou .pfx.
Cela permettra soit de récupérer un blob de récupération de clé privée archivée, soit de générer un script de récupération, soit de récupérer des clés archivées.
3. Sinon, il est possible de lister les certificats concernés, de les exporter dans une liste puis de récupérer les clés privées pour ensuite les convertir.
certutil -view -restrict "KeyRecoveryHashes>0" -out SerialNumber csv
Les attributs suivants peuvent également être inclus :
Request : décrit l'identifiant unique du certificat dans la base de données de la CA.
Requester Name : décrit le demandeur du certificat.
Serial Number : décrit le numéro de série unique du certificat.
Not Before : décrit le début de validité du certificat.
Not After : décrit la fin de validité du certificat.
Key Recovery Hashes : décrit avec quels certificats Key Recovery Agent la clé privée a été archivée. Si la clé est archivée avec plusieurs certificats KRA, ils sont séparés par un signe « + ». Pour la récupération, la clé privée de l'un des certificats KRA doit être présente.
Par exemple :
certutil -view -restrict "KeyRecoveryHashes>0" -out RequestId,RequesterName,SerialNumber,NotBefore,NotAfter,KeyRecoveryHashes csv
Les sorties mentionnées précédemment peuvent être enregistrées dans un fichier en ajoutant « > Pathname\filename.txt »
4. Pour exporter les clés individuelles, exécutez la commande suivante :
Import-Csv -Path filename.txt | ForEach-Object -Process { certutil -getkey $_."Serial Number" "$($_."Serial Number").bin" }
Notes :
Cette commande génère un fichier bin par clé.
L'argument -getkey indique que la clé doit être exportée depuis la base de données de l'autorité de certification vers un fichier.
Ces clés sont encore chiffrées ; pour les déchiffrer, elles doivent être converties au format pfx (PKCS#12).
Convertir les clés au format .pfx
Pour procéder correctement, assurez-vous que tous les certificats Key Recovery Agent (KRA), accompagnés de leurs clés privées, sont installés ou accessibles. Sinon, importez les certificats KRA manquants pour éviter cette erreur :
Decrypt error: Certificate and private key required for decryption not found.
À considérer : dans l'exemple suivant, le même mot de passe est utilisé pour toutes les clés exportées ; la sécurité de toutes les clés est donc liée à la connaissance de ce seul mot de passe.
Cette approche n'est donc pas recommandée en pratique. Il convient d'utiliser des mots de passe forts, générés aléatoirement et, surtout, uniques pour chaque clé, ce qui pourrait être réalisé avec une logique de programme plus complexe.
Pour convertir les clés exportées au format .pfx (PKCS#12), exécutez la commande suivante et indiquez le mot de passe souhaité :
Import-Csv -Path keyscsv.txt | ForEach-Object -Process { certutil -p "P@$$w0rd" -recoverkey "$($_."Serial Number").bin" "$($_."Serial Number").pfx"}
Note : si l'indicateur -p n'est pas spécifié, l'utilisateur sera invité à saisir un mot de passe via la CLI.
Conclusion
Exporter et convertir les clés archivées depuis un Windows Server ADCS est un processus critique dans la gestion des certificats. En suivant les étapes décrites ci-dessus, vous garantissez que vos informations confidentielles restent sécurisées tout en demeurant accessibles pour les opérations nécessaires. Il est essentiel de respecter les bonnes pratiques, telles que l'utilisation de mots de passe forts et uniques et le maintien d'autorisations appropriées, pour protéger votre système contre les menaces de sécurité potentielles, et les outils proposés par Evertrust constituent une alternative robuste à Microsoft ADCS, offrant une utilité significative dans les deux scénarios.
Que vous cherchiez à renforcer la sécurité, à rationaliser les processus ou à moderniser votre gestion du cycle de vie des certificats, Evertrust propose des solutions puissantes pour répondre à vos besoins : vous pouvez non seulement optimiser l'efficacité opérationnelle, mais aussi renforcer votre infrastructure numérique contre les menaces émergentes, garantissant une approche résiliente et agile de la gestion des certificats dans le paysage actuel en évolution rapide.