Dans certains cas, il n'est pas possible ou souhaitable d'obtenir des certificats de serveur web directement auprès d'une autorité de certification de sa propre structure globale Active Directory via la Microsoft Management Console, par exemple lorsque le système concerné n'est pas membre du domaine.
Dans ce cas, il n'est pas possible d'utiliser des modèles de certificats et il faut créer manuellement une demande de certificat (Certificate Signing Request, CSR).
Travaux préparatoires
Si la demande de certificat doit être traitée par une autorité de certification intégrée à Active Directory, il faut définir un modèle de certificat pour cette autorité. La procédure à suivre est décrite dans l'article „Configurer un modèle de certificat Secure Socket Layer (SSL) pour serveur web" décrit.
Génération de la paire de clés et de la demande de certificat
Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.
Il existe différentes manières de créer la paire de clés et la demande de certificat. Les deux méthodes suivantes sont décrites ci-dessous :
- Génération de la demande de certificat avec les outils de base de Windows (interface utilisateur graphique, certlm.msc)
- Génération de la demande de certificat avec les moyens de bord de Windows (ligne de commande, certreq.exe)
- Générer la demande de certificat avec le module PSCertificateEnrollment PowerShell
Méthode 1 : générer la demande de certificat avec les outils de base de Windows (interface utilisateur graphique, certlm.msc)
La méthode suivante suppose que la machine est un membre de la même structure globale Active Directory que l'autorité de certification.
Les certificats du serveur web sont générés et conservés dans le magasin de certificats de l'ordinateur. Par conséquent, la demande de certificat est faite via la console de gestion des certificats d'ordinateur (certlm.msc), qui doit maintenant être appelée.
Cette étape nécessite des droits d'administrateur local sur la machine.

Notre objectif est de sauvegarder la demande de certificat sous forme de fichier après l'avoir générée. Pour ce faire, nous cliquons à droite sous „Personal“ / „Certificates“ et choisissons „All Tasks“ / „Advanced Operations“ / „Create Custom Request...“.

Dans le dialogue suivant, nous pouvons continuer en cliquant sur „Next“.

Dans le dialogue suivant, nous pouvons (dans la plupart des cas) continuer en cliquant sur „Next“.
Dans de rares cas, il peut être nécessaire de configurer une politique d'inscription (en anglais „Enrollment Policy“). Pour plus d'informations, voir l'article „Bases de la demande de certificat via Certificate Enrollment Web Services (CEP, CES)„).

Dans la boîte de dialogue suivante, il est possible de sélectionner le modèle de certificat souhaité. Une fois la sélection effectuée, il est possible de continuer en cliquant sur „Next“.

Dans la boîte de dialogue qui suit, il est important d'activer d'autres options en cliquant sur „Détails“.

Dans la fenêtre de dialogue qui s'ouvre, il faut maintenant cliquer sur „Properties“.

Dans la boîte de dialogue qui s'ouvre alors, il est possible de configurer dans l'onglet „Subject“ les identités que la demande de certificat doit contenir.
Pour les certificats de serveur web, c'est la RFC 2818 qui est déterminante. Celui-ci exige que les identités soient représentées par le Subject Alternative Name (SAN) de type dNSName.
En outre, il peut être utile de définir un commonName. Celui-ci devrait être ignoré selon la RFC, mais permet aux applications qui ne sont pas conformes de faire un fallback.

En option, la clé privée peut être rendue exportable dans l'onglet „Clé privée“.

Le dialogue peut maintenant être fermé et on peut continuer avec „Next“.
Enfin, la demande de certificat est enregistrée sous forme de fichier et le processus se termine par „Finish“.

Méthode 2 : générer la demande de certificat avec les outils de base de Windows (ligne de commande, certreq.exe)
Si la demande de certificat doit être effectuée avec les moyens de bord de Windows, il faut d'abord créer un fichier d'information (.inf) pour la demande de certificat.
Le fichier d'information doit être enregistré avec le codage UTF-8. Si l'encodage est différent, la création de la demande de certificat échouera (voir article "La création d'une demande manuelle de certificat échoue avec le message d'erreur "Expected INF file section name 0xe0000000".„).
Le fichier suivant génère une demande de certificat SSL contenant une clé de 3072 bits et „test.intra.adcslabor.de“ comme „commonName“ dans le sujet et comme „dNSName“ dans le nom alternatif du demandeur.
[Version]
Signature="$Windows NT$"
[Strings]
; Die folgende Variable an die Umgebung anpassen
SERVER_FQDN = "test.intra.adcslabor.de"
; Nachfolgende Strings nicht bearbeiten
; ----------------------------------------------------------------
szOID_SUBJECT_ALT_NAME2 = "2.5.29.17"
szOID_ENHANCED_KEY_USAGE = "2.5.29.37"
szOID_PKIX_KP_SERVER_AUTH = "1.3.6.1.5.5.7.3.1"
[NewRequest]
Subject = "CN=%SERVER_FQDN%"
Exportable = FALSE
MachineKeySet = True
KeyLength = 3072
KeyUsage = 0xA0 ; Digital Signature, Key Encipherment
ProviderName = "Microsoft Software Key Storage Provider"
[Extensions]
%szOID_SUBJECT_ALT_NAME2% = "{text}dns=%SERVER_FQDN%"
%szOID_ENHANCED_KEY_USAGE% = "{text}%szOID_PKIX_KP_SERVER_AUTH%"
Pour des informations de fond sur les différentes options, voir les articles suivants :
- Principes de base : l'extension du certificat Key Usage
- Quelles sont les longueurs de clé à utiliser pour les autorités de certification et les certificats ?
- Principes de base : fournisseur de services cryptographiques (CSP) et fournisseur de stockage de clés (KSP)
Il est maintenant possible de générer une paire de clés et une demande de certificat à l'aide de ce fichier d'informations. La commande suivante permet de générer la demande de certificat.
certreq.exe -new {Informationsdatei}.inf {Zertifikatantrag}.req
Une demande de certificat avec l'extension de fichier .req est générée à partir du fichier .inf.
La commande doit être exécutée sur le système sur lequel le certificat doit être utilisé ultérieurement. La paire de clés est créée sur ce système, la clé privée ne quitte jamais le système.

Méthode 3 : générer la demande de certificat avec le module PSCertificateEnrollment PowerShell
Le site PSCertificateEnrollment Le module PowerShell peut être utilisé via Galerie PowerShell et être ensuite chargés.
Install-Module -Name PSCertificateEnrollment
Import-Module -Name PSCertificateEnrollment
Pour la création de la demande de certificat, Windows PowerShell doit être lancé en tant qu'administrateur, car la paire de clés pour un serveur web doit normalement être générée dans le contexte du système.
La commande suivante génère une demande de certificat SSL contenant une clé de 3072 bits et „test.intra.adcslabor.de“ comme nom commun dans le sujet et comme nom DNS dans le nom alternatif du demandeur.
New-CertificateRequest ` -Machine ` -EnhancedKeyUsage ServerAuthentication ` -KeyLength 3072 ` -Subject "CN=test.intra.adcslabor.de" ` -DnsName "test.intra.adcslabor.de"
Avec le -exportable Le 2ème argument peut éventuellement indiquer que la clé privée doit pouvoir être exportée.

Vérification de la demande de certificat
La demande de certificat qui vient d'être générée peut être consultée sur demande avec la commande de ligne de commande suivante :
certutil -dump {Zertifikatantrag}.req

Voir aussi à ce sujet l'article "Inspecter une demande de certificat (CSR)„ .
Envoi de la demande de certificat à l'autorité de certification
L'envoi d'une demande de certificat à une autorité de certification et la récupération du certificat délivré sont décrits dans l'article „Envoyer une demande de certificat créée manuellement à une autorité de certification" décrit.
Installation du certificat délivré
Le certificat peut maintenant être copié sur l'ordinateur. Il doit maintenant être installé dans le magasin de certificats et associé à la clé privée. Cela se fait à l'aide de la commande de ligne de commande suivante :
certreq -accept {Dateiname-Zertifikat}

Activation du certificat et test de fonctionnement ultérieur
Le certificat doit encore être lié à l'application concrète (par exemple Internet Information Services). Ce processus est spécifique à chaque produit de serveur web.
Liens complémentaires :
- Demande manuelle d'un certificat Remote Desktop (RDP)
- Demande manuelle de certificat de contrôleur de domaine
Sources externes
- Comment demander un certificat avec un nom alternatif de sujet personnalisé (Microsoft)
- certreq (Microsoft)
- IDs d'objets associés à la cryptographie Microsoft (Microsoft)
Les commentaires sont fermés.