Aller au contenu

Générer un CSR sur un serveur Windows sans IIS Manager

Que faire si vous devez installer un certificat SSL pour un service autre qu’IIS et qu’IIS Manager n’est pas installé sur le serveur Windows ? Comment générer un CSR dans ce cas ?

Heureusement, il existe plusieurs solutions de contournement.

  • MMC (Microsoft Management Console)
  • Génération du CSR avec l’utilitaire Certreq
  • Génération du CSR avec PowerShell

Ces solutions n’offrent pas d’assistant convivial et demandent une certaine familiarité avec les outils d’administration système, mais elles restent très efficaces pour atteindre notre objectif : créer un CSR, que nous pourrons soumettre à l’autorité de certification lors de l’activation du certificat.

Voyons maintenant chacune de ces méthodes de plus près.

Génération du CSR dans MMC (Microsoft Management Console)

Section intitulée « Génération du CSR dans MMC (Microsoft Management Console) »

Ouvrez le composant logiciel enfichable Certificates dans MMC en suivant ces étapes : Win+R >> mmc.exe >> OK >> File>> Add/Remove Snap-in >> Certificates>> Add>> Computer account >> Next>>Local computer >> Finish>> OK.

Dans le panneau Personal >> Certificates, faites un clic droit dans l’espace vide et suivez All Tasks >> Advanced Operations >> Create Custom Request pour ouvrir l’assistant Certificate Enrollment :

Vérifiez que l’option par défaut Proceed without enrollment policy est sélectionnée et cliquez sur Next :

Sur l’écran suivant, laissez les options présélectionnées (No template) CNG key et PKCS#10 et cliquez sur Next :

Il faut maintenant ouvrir la fenêtre dans laquelle nous allons ajuster la demande de certificat, afin d’obtenir un certificat avec les bonnes informations et le type de clé requis. Cliquez sur la flèche déroulante à droite, puis sur le bouton Properties.

Saisissez un nom convivial (friendly name) dans le champ prévu, afin de pouvoir identifier cette demande par la suite. Ce champ sert à donner un nom au certificat : il peut s’agir du nom de domaine pour lequel le certificat sera émis ou de pratiquement n’importe quel autre nom :

Dans l’onglet suivant, appelé Subject, nous devons ajouter quelques champs à la demande et indiquer leurs valeurs. Les types de champs essentiels qui doivent figurer dans la demande sont :

  • Common name : nom de domaine complet (FQDN) pour lequel le certificat doit être émis
  • Country : code pays à 2 lettres conforme à la norme ISO 3166. Le bon code peut être vérifié ici.
  • State : nom de l’État ou de la région ; peut être identique au nom de la ville
  • Locality : nom de la ville
  • Organization : indiquez ici le nom de l’entreprise

REMARQUE : si vous devez ajouter des noms alternatifs du sujet (SAN) à la demande, vous pouvez le faire dans la section Alternative name. Sélectionnez le type de champ DNS et ajoutez les noms de domaine un par un :

Le résultat devrait ressembler à ceci :

Le dernier onglet de cette fenêtre à ouvrir et à vérifier est Private key. Dépliez la section Cryptographic Service Provider pour y jeter un œil. L’option par défaut est l’algorithme RSA, la norme du secteur aujourd’hui, mais vous pouvez opter pour « ECDSA » (si vous devez émettre un certificat ECC) en cochant l’une des entrées de l’image ci-dessous :

Dans la section Key options, si l’algorithme RSA est utilisé, assurez-vous que Key size est réglé sur au moins 2048 bits.

REMARQUE : les certificats basés sur une clé de moins de 2048 bits sont considérés comme non sécurisés, et les autorités de certification de confiance ne les émettent plus.

Si vous prévoyez d’exporter le certificat, par exemple pour l’installer sur une autre instance, vous devez cocher l’option Make private key exportable :

Vous pouvez maintenant cliquer sur Ok et poursuivre.

Le dernier écran de l’assistant Certificate Enrollment vous demande d’indiquer le nom du fichier dans lequel le CSR sera enregistré ainsi que son emplacement dans le système de fichiers. Assurez-vous aussi que File Format est réglé sur Base64. Cliquez ensuite sur le bouton Finish pour lancer la génération de la clé privée et du CSR avec les attributs que nous venons de définir :

Certreq est un utilitaire en ligne de commande, utilisé principalement pour créer et soumettre des demandes de certificat, et pour récupérer, accepter et installer les réponses des autorités de certification.

Avant de commencer à utiliser « certreq », nous devons créer un fichier de stratégie (policy file) dans lequel seront puisées les informations nécessaires au CSR. Créez un nouveau fichier texte ordinaire et ouvrez-le. Copiez-collez ensuite le texte ci-dessous dans le fichier (choisissez le bloc de code RSA ou ECDSA) :

;—————– request.inf —————–

[Version]
Signature=“$Windows NT$”

[NewRequest]
Subject = “C=US, O=Ruachost, CN=example.com, L=Los Angeles, S=California”

KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = “Microsoft RSA SChannel Cryptographic Provider”
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
HashAlgorithm = SHA256

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1
;———————————————–

;—————– request.inf —————–

[Version]
Signature=“$Windows NT$”

[NewRequest]
Subject = “C=US, O=Ruachost, CN=example.com, L=Los Angeles, S=California”
KeyAlgorithm = ECDSA_P384 ; can be changed to 256 or 521
Exportable = TRUE
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = “Microsoft Software Key Storage Provider”
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
HashAlgorithm = SHA256

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1
;———————————————–

REMARQUE : vous pouvez ajouter l’adresse postale au CSR en indiquant la variable Street dans la directive Subject, comme ceci :

***Subject = “***************CN=example.com,C=US, O=Ruachost, L=Los Angeles, S=California, Street= Test Avenue 1”

Veillez à remplacer les valeurs mises en évidence en noir par des valeurs valides pour votre demande. Enregistrez ensuite le fichier au format .inf (request.inf, par exemple) :

Ouvrez maintenant l’invite de commandes : Win+R>> cmd>> Enter.

Allez dans le dossier où le fichier de stratégie est enregistré à l’aide de la commande « cd » :**

Exécutez la commande suivante pour lancer la génération du CSR :**

certreq.exe -new request.inf nctest.csr

Si le message Request Created apparaît en réponse à la commande, le CSR est créé et enregistré dans le fichier .csr (nctest_ecdsa.csr dans l’exemple ci-dessus).

Si vous aimez les scripts et avez l’habitude d’effectuer certaines tâches courantes dans PowerShell, le script suivant, conçu pour générer un CSR avec une clé RSA de 2048 bits, vous plaira certainement.

Ouvrez la console PowerShell en lançant :

Win+R >> powershell>> Enter.

Utilisez ensuite la commande suivante pour créer un nouveau fichier qui contiendra le code du script :

start notepad script_file_name.ps1

*Où script_file_name.ps1 est le fichier de script, auquel vous pouvez donner n’importe quel nom adapté.

Dans la fenêtre du Bloc-notes (Notepad) qui s’ouvre, collez l’intégralité du code disponible ici et enregistrez le fichier en appuyant sur Ctrl+S ou via le menu File >> Save As.

Exécutez ensuite la commande suivante dans PowerShell :

.\script_file_name.ps1

Où script_file_name.ps1 est le nom que vous avez donné à votre fichier de script.*

L’invite, qui rappelle un peu OpenSSL, vous demandera de saisir les valeurs Common Name, organisation, service (organization unit), ville, État et pays.

REMARQUE : lorsqu’on vous demande les noms alternatifs du sujet (SAN), vous pouvez les indiquer si nécessaire ou simplement passer cette étape en appuyant sur Entrée.

Enfin, la fenêtre PowerShell affiche un récapitulatif des informations fournies, les détails des algorithmes de hachage et de clé, ainsi que le CSR, et propose de copier immédiatement le CSR dans le presse-papiers :

Une fois le CSR généré avec l’une des méthodes décrites ci-dessus, vous pouvez passer à l’activation du certificat SSL.

Cette page vous a-t-elle aidé ?