Créer un certificat avec SAN manuellement
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 :
- Renseigner les informations du certificat dans un fichier INF, y compris les entrées SAN
- Utiliser CertReq pour créer le CSR
- 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