Comment puis-je créer un certificat en utilisant makecert
avec un champ 'Subject Alternative Name'?
Vous pouvez ajouter certains champs par exemple, 'Enhanced Key Usage' avec l'option -eku et j'ai essayé l'option -san mais makecert ne l'aime pas.
Il s'agit d'un certificat auto-signé, donc toute méthode qui utilise IIS pour créer quelque chose à envoyer à une autorité de certification ne sera pas appropriée.
Makecert ne semble pas prendre en charge les SAN, j'ai donc créé un certificat avec des SAN à utiliser avec IIS en utilisant OpenSSL. Consultez mon article à ce sujet.
http://andyarismendi.blogspot.com/2011/09/creating-certificates-with-sans-using.html
Un moyen encore plus simple consiste à utiliser le commandlet New-SelfSignedCertificate PowerShell, qui comprend un SAN par défaut. Dans une seule commande, vous pouvez créer le certificat et l'ajouter au magasin.
New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My
Notez que vous devez exécuter PowerShell en tant qu'administrateur.
Mise à jour
Le certificat généré à l'aide de la méthode makecert
ci-dessous ne fonctionne pas de manière fiable dans tous les navigateurs, car il ne génère pas réellement un "Autre nom de sujet".
Si vous examinez le certificat, vous verrez qu'il n'a pas réellement de Subject Alternative Name
, mais spécifie à la place plusieurs CN
dans le champ Subject
.
Par exemple.
Subject:
CN = blah.foo.corp
CN = blah
Alors qu'un vrai certificat "SAN" aurait quelque chose comme:
Subject Alternative Name:
DNS Name=blah.foo.corp
DNS Name=blah
Pour comprendre les différences et l'historique entre le champ "Subject" avec "Common Name" et le champ "Subject Alternative Name", je recommande de lire The (soon to be) not-so Common Name .
Il semble donc que makecert
ne peut pas être utilisé pour générer un véritable certificat "SAN", et vous devrez utiliser d'autres outils, tels que openssl
.
Réponse originale:
Au moins avec la version de makecert
fournie avec Visual Studio 2012, vous pouvez spécifier plusieurs sujets, simplement en spécifiant une liste séparée par des virgules -n "CN=domain1, CN=domain2"
Par exemple. (depuis le blog technet Makecert.exe SAN et certificat Wildcard )
makecert -r -pe -n "CN=*.fabrikam.com, CN=*.contoso.com" -b 01/01/2010 -e 01/01/2100 -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.3,1.3.6.1.5.5.7.3.4 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -len 2048