error development asp.net-mvc visual-studio ssl iis-express

asp.net mvc - development - IIS Express: hacer que SSL funcione



iis express development certificate (3)

No puedo hacer que IIS Express acepte conexiones seguras para un proyecto VS2010 MVC3 que estoy desarrollando. Puedo hacer que acepte conexiones no seguras en el puerto 80, pero no seguro en el puerto 443.

He tomado los siguientes pasos, basados ​​en googlear:

1) Ubiqué la huella digital de SHA1 para mi certificado autofirmado de IIS Express Server mediante la ejecución de lo siguiente en una línea de comando de VS2010:

certmgr.exe /c /s /r localMachine MY

El resultado fue 9B088F80 A4FC3141 28F62890 70BA1FC4 49FDD009. Más tarde supe que necesito eliminar los espacios cuando uso la huella digital.

2) Se eliminó cualquier certificado vinculado al puerto 443 ejecutando lo siguiente en un aviso de línea de comando elevado:

netsh http delete sslcert ipport=0.0.0.0:443

3) Se generó un nuevo GUID ejecutando Crear GUID fuera del menú Herramientas de VS2010. En mi caso, obtuve B0421A5B-FF61-47CE-892D-11AA3A9C7D2A.

4) Instaló el certificado autofirmado en el puerto 443 ejecutando lo siguiente en un aviso de línea de comando elevado:

netsh http add sslcert ipport=0.0.0.0:443 certhash=9B088F80A4FC314128F6289070BA1FC449FDD009 appid={B0421A5B-FF61-47CE-892D-11AA3A9C7D2A}

5) Modificó la ACL ejecutando lo siguiente desde una línea de comando elevada:

netsh http add urlacl url=https://localhost:443/ user=everyone

6) Se modificó el archivo application.config para IIS Express agregando un enlace para el puerto 443 y el protocolo https. La sección de sitios para el archivo terminó luciendo así:

<sites> <site name="Development Web Site" id="1" serverAutoStart="true"> <application path="/"> <virtualDirectory path="/" physicalPath="%IIS_BIN%/AppServer/empty_wwwroot" /> </application> <bindings> <binding protocol="https" bindingInformation="*:443:localhost" /> <binding protocol="http" bindingInformation="*:80:localhost" /> </bindings> </site> <siteDefaults> <logFile logFormat="W3C" directory="%IIS_USER_HOME%/Logs" /> <traceFailedRequestsLogging directory="%IIS_USER_HOME%/TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" /> </siteDefaults> <applicationDefaults applicationPool="IISExpressAppPool" /> <virtualDirectoryDefaults allowSubDirConfig="true" /> </sites>

7) Reinició el servicio http ejecutando lo siguiente en un aviso de línea de comando elevado:

net stop http net start http

8) Cambié el URL del proyecto en la pestaña Web de la página de propiedades de mi proyecto MVC a lo siguiente:

http://localhost/

Al guardar la página de propiedades del proyecto, se activó una reconfiguración del servidor después de realizar este cambio.

Cuando lance la aplicación MVC desde VS2010, se relaciona correctamente con http: // localhost (en el puerto 80, por defecto; no he incluido todos los pasos para que IIS Express funcione con conexiones inseguras / normales en el puerto 80, pero básicamente son pasos del 5 al 7, pero se centran en http y el puerto 80, no en https y en el puerto 443).

Sin embargo, al tratar de realizar una transición a cualquier acción que requiera https, obtengo un error de "conexión rechazada por el servidor".

¿Qué estoy haciendo mal?


Después de establecer un proyecto para usar IISExpress, presione F4 mientras el proyecto está seleccionado en el explorador de soluciones para que aparezcan las propiedades y en las propiedades establezca SSL Enable set true y bajo SSL URL configure la URL con el puerto (443 en su caso) que desea para SSL.

Esto funciona para mí sin pasar por alto y el certificado autofirmado fue automático.

Para ejecutar el proyecto en esa URL de forma predeterminada, puede hacer clic con el botón derecho en el proyecto, seleccionar propiedades, luego Web y reemplazar la URL del proyecto con https: // localhost: 443


Me encontré con la respuesta.

En el paso 6, estaba modificando el archivo IIS Express application.config incorrecto. Resulta que hay un archivo de configuración "maestro" en el directorio de inicio de la aplicación (por ejemplo, C:/Program Files (x86)/IIS Express/AppServer , en mi sistema), que es el que modifiqué.

El segundo y correcto archivo para modificar es el que se encuentra en el área de datos del usuario (por ejemplo, C:/Users/Mark.ARCABAMA/Documents/IISExpress/config , en mi sistema).


Si ha seguido los pasos de jbtule y SSL sigue sin funcionar, asegúrese de que su puerto tenga el formato :443XX .

Visual Studio lo hizo automáticamente para el primer proyecto en el que habilité SSL, pero cualquier proyecto posterior parece tener puertos SSL aleatorios. Cambiándolo a la estructura 443 de arriba en el Project > Web UI, lo levanté y funcionó para mí.