¿Cómo puedo crear un certificado autofirmado para localhost?

He seguido los pasos detallados en ¿Cómo se usa https / SSL en localhost? pero esto configura un certificado autofirmado para mi nombre de máquina, y cuando lo navego a través de https: // localhost recibo la advertencia de IE.

¿Hay alguna forma de crear un certificado autofirmado para “localhost” para evitar esta advertencia?

Aunque esta publicación es etiquetada para Windows, es una pregunta relevante sobre OS X que no he visto respuestas para otros sitios. Estos son los pasos para crear un certificado autofirmado para localhost en OS X :

# Use 'localhost' for the 'Common name' openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt # Add the cert to your keychain open localhost.crt 

En Keychain Access , haga doble clic en este nuevo certificado localhost. Expanda la flecha al lado de “Confiar” y elija “Confiar siempre”. Chrome y Safari ahora deberían confiar en este certificado. Por ejemplo, si quiere usar este certificado con node.js:

 var options = { key: fs.readFileSync('/path/to/localhost.key').toString(), cert: fs.readFileSync('/path/to/localhost.crt').toString(), ciphers: 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384', honorCipherOrder: true, secureProtocol: 'TLSv1_2_method' }; var server = require('https').createServer(options, app); 

Después de pasar una buena cantidad de tiempo sobre este tema, cada vez que seguí las sugerencias sobre el uso de IIS para crear un certificado autofirmado, descubrí que el Issued To and Issued by no era correcto. SelfSSL.exe fue la clave para resolver este problema. El siguiente sitio web no solo proporcionó un enfoque paso a paso para la realización de certificados autofirmados, sino que también resolvió el problema Emitido para y expedido. Esta es la mejor solución que encontré para hacer certificados autofirmados. Si prefiere ver el mismo tutorial en video, haga clic aquí .

Un uso de muestra de SelfSSL se parecería a lo siguiente:

SelfSSL /N:CN=YourWebsite.com / V: 1000 / S: 2

SelfSSL /? proporcionará una lista de parámetros con explicación.

Puede usar PowerShell para generar un certificado autofirmado con el cmdlet new-selfsignedcertificate:

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

Nota: makecert.exe está en desuso.

Referencia de cmdlet: https://technet.microsoft.com/itpro/powershell/windows/pkiclient/new-selfsignedcertificate

Si está intentando crear un certificado autofirmado que le permita ir a http://localhost/mysite Entonces, aquí hay una forma de crearlo

 makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.1 -sv localhost.pvk localhost.cer cert2spc localhost.cer localhost.spc pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx 

Desde http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/32bc5a61-1f7b-4545-a514-a11652f11200

Dado que esta pregunta está etiquetada con IIS y no puedo encontrar una buena respuesta sobre cómo obtener un certificado de confianza, le daré dos centavos al respecto:

Primero use el comando de @AuriRahimzadeh en PowerShell como administrador:

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

Esto es bueno, pero el certificado no es confiable y dará como resultado el siguiente error. Es porque no está instalado en las Trusted Root Certification Authorities .

enter image description here

Resuelva esto iniciando mmc.exe .

Luego ve a:

Archivo -> Agregar o quitar complementos -> Certificados -> Agregar -> Cuenta de equipo -> Equipo local

Expande la carpeta Personal y verás tu certificado de localhost :

enter image description here

Copie esto en las Trusted Root Certification Authorities - Certificates

El último paso es abrir el Internet Information Services (IIS) Manager o simplemente inetmgr.exe . Desde allí diríjase a su sitio, seleccione Bindings... y Add... o Edit... Establezca https y seleccione su certificado del menú desplegable.

enter image description here

Su certificado ahora es confiable:

enter image description here

Recomendaría la herramienta de Pluralsight para crear certificados autofirmados: http://blog.pluralsight.com/selfcert-create-a-self-signed-certificate-interactively-gui-or-programmatically-in-net

Realice su certificado como .pfx e impórtelo a IIS. Y agréguelo como una autoridad de certificación de raíz de confianza.

Si y no. Los certificados autofirmados dan como resultado ese mensaje de advertencia porque el certificado no fue firmado por una autoridad de certificación de confianza. Hay algunas opciones que puede considerar para eliminar esta advertencia en su máquina local. Vea las respuestas mejor clasificadas a esta pregunta para más detalles:

¿Qué debo hacer para que Internet Explorer 8 acepte un certificado autofirmado?

¡Espero que esto ayude!


EDITAR:

Lo siento, inicialmente no era consciente de que estabas restringido a localhost. Puede intentar seguir las instrucciones en el siguiente enlace para “Generar un certificado autofirmado con el nombre común correcto”.

http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html

He creado una herramienta web que genera certificados SSL autofirmados ( http://codeassistant.net/Certificate ). Por defecto, genera un certificado para “localhost”. Quizás esto es lo que estás buscando.

Descargo de responsabilidad: Yo “trabajo” allí.

El certificado autofirmado se puede crear con una sola línea mediante el uso del script de PowerShell utilizando el cmdlet siguiente.

Cmdlet: New-SelfSignedCertificate

Ejemplo: New-SelfSignedCertificate -FriendlyName USProd_Certif -DnsName PRODCD-USCertificate -CertStoreLocation Cert: \ LocalMachine \ My

Ejemplo: http://dotnet-helpers.com/powershell/create-custom-name-self-signed-certificate-using-powershell/