web-dev-qa-db-fra.com

ajouter ou créer le champ «Subject Alternative Name» au certificat auto-signé à l'aide de makecert

Comment puis-je créer un certificat en utilisant makecert avec un champ 'Subject Alternative Name'?

enter image description here

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.

29
wal

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

14
Andy Arismendi

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.

28
DanO

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
8
Nathan