2011-06-17 30 views
19

¿Cómo puedo crear un certificado usando makecert con un campo 'Nombre alternativo del sujeto'?agregar o crear el campo 'Nombre alternativo del sujeto' al certificado autofirmado usando makecert

enter image description here

Se pueden añadir algunos campos, por ejemplo, 'Uso mejorado de clave' con la opción -eku y he probado la opción -san pero makecert no le gusta.

Este es un certificado autofirmado, por lo que cualquier método que utilice IIS para crear algo para enviar a una CA no será apropiado.

Respuesta

8

actualización

el certificado generado mediante el siguiente makecert método no funciona correctamente en todos los navegadores, ya que en realidad no generar un "nombre alternativo del sujeto".

Si examina el certificado se verá que en realidad no tienen un campo Subject Alternative Name, sino que especifique varios CN en el campo Subject.

E.g.

Subject: 
CN = blah.foo.corp 
CN = blah 

Mientras que un verdadero "SAN" cert tendría algo como:

Subject Alternative Name: 
DNS Name=blah.foo.corp 
DNS Name=blah 

Para entender las diferencias y la historia entre el campo "Asunto" con "nombre común" y el "nombre alternativo del sujeto" campo, recomiendo leer The (soon to be) not-so Common Name.

lo que parece que no makecert se puede utilizar para generar un verdadero "SAN" cert, y usted tendrá que utilizar otras herramientas, tales como openssl.


respuesta original:

Al menos con la versión de makecert que viene con Visual Studio 2012, se pueden especificar varios temas, simplemente especificando una lista separada por comas -n "CN=domain1, CN=domain2"

P. ej separado (Desde el blog de TechNet Makecert.exe SAN and Wildcard certificate)

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 
+1

Para que quede claro, no desea utilizar múltiples SubjectCN, ya que Firefox solo respeta el último y Chrome solo respeta el primero. – EricLaw

17

Una forma aún más fácil es utilizar el comando de Windows PowerShell New-SelfSignedCertificate, que incluye una red SAN de manera predeterminada. En un solo comando, puede crear el certificado y agregarlo a la tienda.

New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My

Tenga en cuenta que es necesario ejecutar PowerShell como administrador.

+1

¿cómo se transfieren los nombres alternativos del sujeto a ese comando? – wal

+2

Crea uno para usted según el nombre Dns proporcionado. También puede pasar una lista delimitada por comas si necesita admitir varias URL. P.ej. 'New-SelfSignedCertificate -DnsName localhost, mysite.com, test.com -CertStoreLocation cert: \ LocalMachine \ My' – DanO

+0

Incluso si instala Powershell v4, este comando SÓLO está disponible en Windows Server 2012+ y Windows 8+ (o tal vez 8.1 + ??) No Win 7 y no Server 2008 :( – Jester

Cuestiones relacionadas