¿Cómo se usa https / SSL en localhost?

88

Me gustaría saber cómo configurar SSL en mi aplicación web en el localhost.

No tengo experiencia en hacer esto, agradecería orientación. Ya terminé de implementar mi aplicación web y necesito que use https en el localhost o mientras la alojo en un servidor.

¿Algunas ideas?

Saludos.

HShbib
fuente
Ver publicación similar: stackoverflow.com/questions/36037510/…
Pusker György

Respuestas:

23

Si tiene IIS Express (con Visual Studio):

Para habilitar SSL dentro de IIS Express, simplemente debe configurar "SSL Enabled = true" en la ventana de propiedades del proyecto.

Vea los pasos y las imágenes en este proyecto de código .

IIS Express generará un certificado para usted (se le pedirá, etc.). Tenga en cuenta que, según la configuración, el sitio puede comenzar automáticamente con la URL en lugar de la URL SSL. Puede ver la URL de SSL: anote el número de puerto y reemplácelo en la barra de direcciones de su navegador, debería poder ingresar y probar.

Desde allí, puede hacer clic derecho en su proyecto, hacer clic en las páginas de propiedades, luego en las opciones de inicio y asignar la URL de inicio; coloque el nuevo https con el nuevo puerto (generalmente 44301; observe la similitud con el puerto 443) y su proyecto comenzará correctamente desde entonces en.

ingrese la descripción de la imagen aquí

JackArbiter
fuente
¿Puedo elegir el puerto? es decir, utilice el puerto https predeterminado; puerto 443?
The Red Pea
1
@TheRedPea En todos los casos que he encontrado, debe usar el puerto 44301 para probar localmente en lugar de usar el puerto 443. Esto no afectará los puertos que usa para su servidor en vivo (que vincula en IIS), que casi siempre será 443 asumiendo que está utilizando https.
JackArbiter
21

Es fácil crear un certificado autofirmado, importarlo y vincularlo a su sitio web.

1.) Cree un certificado autofirmado:

Ejecute los siguientes 4 comandos, uno a la vez, desde un símbolo del sistema elevado:

cd C:\Program Files (x86)\Windows Kits\8.1\bin\x64

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.3 -sv localhost.pvk localhost.cer

cert2spc localhost.cer localhost.spc

pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

2.) Importar certificado a la tienda Trusted Root Certification Authorities:

inicio -> ejecutar -> mmc.exe -> Complemento de certificados -> "Autoridades de certificación raíz de confianza" -> Certificados

Haga clic con el botón derecho en Certificados -> Todas las tareas -> Importar Busque su certificado "localhost" en C: \ Archivos de programa (x86) \ Windows Kits \ 8.1 \ bin \ x64 \

3.) Vincular el certificado al sitio web:

Inicio -> Administrador (IIS) -> Haga clic en su servidor -> Haga clic en Sitios -> Haga clic en su sitio de nivel superior -> Enlaces

Agregue o edite un enlace para https y seleccione el certificado SSL llamado "localhost".

4.) Importar certificado a Chrome:

Configuración de Chrome -> Administrar certificados -> Importar certificado .pfx desde la carpeta C: \ certificate \

Pruebe el certificado abriendo Chrome y navegando a https: // localhost /

Jason Williams
fuente
¿Cómo se obtienen los archivos que acaba de usar al mando makecert? localhost.pvk localhost.cer cert2spc localhost.cer localhost.spc. ¿Cómo obtengo el archivo private.key para crear un archivo allinone.pem para usar en otros servidores web que no sean IIS?
Si no desea importar el certificado a Chrome, puede optar por deshabilitar la función de seguridad de Chrome que bloquea el acceso a certificados autofirmados en localhost stackoverflow.com/a/31900210/2733283
Jason Williams
8

Esta pregunta es muy antigua, pero encontré esta página cuando estaba buscando la forma más fácil y rápida de hacerlo. Usar Webpack es mucho más simple:

instalar webpack-dev-server

npm i -g webpack-dev-server

inicie webpack-dev-server con https

webpack-dev-server --https
Brianyang
fuente
2
Esto servirá a los archivos js que componen la aplicación, pero no ejecuta la aplicación.
user1944491
¿Se puede usar junto con un servidor de desarrollo existente como XAMPP?
Prometeo