Créer un certificat avec SAN manuellement

Créer un certificat avec SAN manuellement

11 novembre 2019 Non Par Stefan Plizga

Il peut s’avérer utile de créer un Certificate Signing Request (CSR) avec le champ Subject Alternative Name (SAN) manuellement. Voici une méthode rapide et simple…

Pour créer un CSR manuellement, la méthode suivante peut être utilisée :

  1. Renseigner les informations du certificat dans un fichier INF, y compris les entrées SAN
  2. Utiliser CertReq pour créer le CSR
  3. Utiliser CertReq pour importer le certificat émis

L’exemple ci-dessous donne le contenu du fichier Cert.inf :

[NewRequest]
Subject = "CN=join.contoso.com,OU=IT,O=Contoso,L=Paris,S=IDF,C=FR"
Exportable = TRUE
KeySpec = 1
MachineKeySet = True
KeyLength = 2048

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=join.contoso.com&"
_continue_ = "dns=dialin.contoso.com&"
_continue_ = "dns=meet.contoso.com&"
_continue_ = "dns=lyncpoolws.contoso.com&"

[RequestAttributes]
CertificateTemplate =WebServer

Les éléments à modifier sont :

  • Subject: il s’agit du champ contenant le Common Name du certificat avec les autres informations telles que Organization, OU, Location, State et Country.
  • KeyLength: taille de la clé (2048 bit dans l’exemple)
  • Extensions: l’extension 2.5.29.17 représente l’extension Subject Alternative Name. Pour ajouter plusieurs noms DNS, il faut modifier les éléments continue en préfixant toujours le nom par dns= et en terminant par &.

Pour créer le CSR, il faut exécuter la commande suivante sur une machine Windows Server 2008 ou supérieur : 

CertReq -New Cert.inf Cert.txt

Le fichier Cert.txt est le résultat de la commande, c’est-à-dire le CSR à fournir à l’autorité de certification pour obtenir le certificat.

Une fois le certificat généré par l’autorité de certification (fichier ayant le nom Cert.cer par exemple), il faut lance la commande suivante sur la même machine qui a servi à créer le CSR :

CertReq -Accept Cert.cer

Le certificat avec sa clé privée apparaitra ensuite dans le magasin personnel du conteneur de la machine et pourra être exporté en PFX si besoin.

— Stefan