Estoy usando el nuevo Visual Studio 2013 con IISExpress por primera vez (anteriormente utilicé el servidor de desarrollo ASP.net en VS2010). Me encuentro con problemas al intentar depurar mi proyecto.
Esto es lo que veo en Chrome:
No se puede establecer una conexión segura con el servidor. Esto puede ser un problema con el servidor o puede requerir un certificado de autenticación de cliente que no tiene. Código de error: ERR_SSL_PROTOCOL_ERROR
Actualicé mi archivo web Properies -> para que la URL del proyecto utilice una URL https ahora. Sin embargo, después de hacer eso, ahora aparece un nuevo error al iniciar:
La conexión a localhost fue interrumpida. Código de error: ERR_CONNECTION_RESET
Gracias
Respuestas:
Si está utilizando URLRewrite para forzar conexiones SSL en su web.config, probablemente esté reescribiendo su dirección de host local para forzar https. Si la depuración con SSL habilitado no es importante para usted y está utilizando URLRewrite, considere agregar
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
a la sección de reescritura de su archivo web.config. Detendrá la reescritura de cualquier dirección de host local, pero la dejará en su lugar en un entorno de producción. Si no está utilizando URLRewrite o necesita depurar con SSL, http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx podría ayudar. Es para VS2010, pero también debería ser suficiente para VS2013.fuente
Estaba obteniendo ERR_CONNECTION_RESET porque mi número de puerto de la aplicación configurada de Visual Studio 2013 / IIS Express NO estaba en el rango : 44300-: 44398 . (No recuerdo haber tenido que descartar ninguna advertencia para salir de ese rango). Cambiar el número de puerto a algo en este rango es todo lo que tuve que hacer para que funcionara.
Me di cuenta de esto después de revisar la
netsh http show sslcert > sslcert.txt
salida y hacer clic en algo que leí recientemente sobre los números de puerto.fuente
netsh http add sslcert ...
para agregar el puerto que desea usar. Útil en algunos casos.netsh
al rescate, esto es digno de una publicación de blog ...Asegúrese de eliminar todos los certificados 'localhost' anteriores, ya que podrían entrar en conflicto con el generado por IIS Express. Tuve este mismo error (ERR_SSL_PROTOCOL_ERROR), y me llevó muchas horas finalmente resolverlo después de probar muchas "soluciones". Mi error fue que había creado mi propio certificado 'localhost' y había dos de ellos. Tuve que eliminar ambos y hacer que IIS Express lo recreara.
Aquí es cómo puede verificar y eliminar el certificado 'localhost':
En Visual Studio, seleccione el proyecto y, en la pestaña de propiedades, active SSL = true. Guardar, construir y ejecutar. IIS Express generará un nuevo certificado 'localhost'.
Nota: Si no funciona, intente lo siguiente: asegúrese de deshabilitar IIS Express en el proyecto VS y de detener todas las aplicaciones en ejecución antes de eliminar el certificado 'localhost'. Además, puede ir a 'panel de control> programas' y Reparar IIS Express.
fuente
netsh http delete sslcert ipport=0.0.0.0:443
netsh http add sslcert ipport=0.0.0.0:443 appid="{GUID-APP-ID}" certhash="THUMBPRINTOFMYCERTIFICATEINHEXADECIMAL"
Estoy resumiendo los pasos que me ayudaron a resolver este problema:
New_Certificate_Hash será su certificado predeterminado vinculado con su host local (que encontramos en el paso 4) o el que desea agregar como un nuevo certificado.
PD: Gracias por tu respuesta uosɐſ (que me ayudó a resolver este problema)
fuente
El problema que estaba experimentando tenía que ver conmigo, en algún momento, habilitar HSTS para localhost y no darme cuenta de que esto rompería mi http: // localhost: someport en IIS Express.
HSTS le dice al navegador (Chrome en mi caso) que SIEMPRE solicite una URL usando HTTPS. Por lo tanto, aunque ni siquiera había habilitado SSL para mi aplicación MVC 5, el navegador aún intentaría acceder a mi sitio usando HTTPS en la URL en lugar de HTTP.
¿La solución?
fuente
Ninguna de las opciones anteriores funcionó para mí. Tuve que hacer lo siguiente:
Obtuve los pasos de este hilo.
Espero que esto ayude.
fuente
En mi caso, creé un certificado autofirmado y lo hice funcionar, excepto que recibí un error en el navegador porque el certificado no era de confianza. Entonces, moví el certificado a la carpeta Autoridades de certificación raíz de confianza> Certificados en el complemento Certificados. Funcionó, y luego cerré Visual Studio por el día.
Al día siguiente, comencé mi proyecto y recibí el error mencionado en la pregunta original. El problema es que el certificado con el que configuró IISExpress debe existir en la carpeta Personal> Certificados o HTTPS dejará de funcionar. Una vez que IIS Express se inicia con éxito, puede arrastrar el certificado nuevamente a la ubicación de confianza. Continuará funcionando hasta que reinicie IIS Express.
Como no quiero preocuparme por arrastrar el certificado de un lado a otro cada vez, simplemente coloco una copia del certificado en ambos lugares y ahora todo funciona bien.
fuente
Tengo el mismo problema en Visual Studio 2015. Porque uso el enlace SSL en web.config
Y puedo solucionar el problema con la respuesta de Mr.djroedger. Por reemplazo
con
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
en mi web.config, entonces mi código es
fuente
Estaba teniendo este problema, había configurado mi sitio para requisitos globales https en FilterConfig.cs.
Olvidé cambiar la URL del proyecto a https: de este tutorial http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth- sql-database / under ENABLE SSL part 4. Esto causó los errores que estaba recibiendo.
fuente
El problema que tuve estaba relacionado con la respuesta de @Jason Kleban, pero tuve un pequeño problema con mi configuración en las Propiedades de Visual Studio para IIS Express.
Asegúrese de que después de haber cambiado el puerto para estar en el rango: 44300 a 44399, la dirección también comience con
HTTPS
fuente
Otro problema que me sucedió dos veces:
en IIS Express
applicationhost.config
el orden de los enlaces sí importa. Un enlace podría tener prioridad sobre su enlace SSL, haciendo que no funcione.Ejemplo:
Es posible que haya agregado un enlace similar al segundo para poder acceder a su servicio web desde el exterior
localhost
. Debido a que este enlace escucha en cualquier dirección, parece anular el enlace SSL aunque se utilizó un puerto diferente.Elimina la atadura malvada o muévela hacia abajo.
fuente
Eliminar los directorios IISExpress y vs y usar el rango de puertos SSL de 44300 a 44399 (inclusive) de este artículo funcionó para mí
fuente
Esto es anecdótico como lo escuchó un compañero de trabajo, pero supuestamente se trata de un problema con Chrome forzar https. Por lo general, inicio en Firefox, así que no había visto este problema antes. Usar Firefox o ie funcionó para mi compañero de trabajo.
fuente
Mi problema fue causado por Fiddler. Cuando Fiddler se bloquea, ocasionalmente interfiere con la configuración de su proxy. Simplemente iniciar Fiddler parecía arreglarlo todo (tal vez se repare de alguna manera).
fuente
El ' comprobador de instalación de certificados Digicert ' suele ser útil en situaciones como esta.
Pude verificar que el certificado SSL que intentaba era el que esperaba al comparar el número de serie.
Para mí, la respuesta de @Jason Kleban fue el problema real, pero esta puede ser una utilidad muy útil para verificar sus afirmaciones básicas sobre qué certificado se está cargando.
fuente
Si necesita usar un puerto fuera del rango 44300-44399, aquí hay una solución alternativa:
Esto registra el certificado de desarrollo IIS Express con ese puerto y es la forma más fácil que he encontrado para superar el requisito de rango 44300-44399.
fuente
Acababa de reconstruir mi computadora. Este hilo me dio las pistas, donde me di cuenta en la configuración del proyecto> Web, el proyecto se configuró para usar HTTP y el puerto HTTP. Al actualizarlo a HTTPS y al puerto HTTPS correcto, todo comenzó a funcionar nuevamente.
fuente
Para continuar con otras respuestas sobre cómo configurar el puerto SSL entre 44300 y 44399, no pude cambiar la propiedad SSL Enabled en Visual Studio, ni establecer una URL SSL específica. Otras respuestas, como reparar IIS Express, no ayudaron. La solución fue ir a la carpeta .vs paralela al archivo sln, abrir la subcarpeta config y luego editar el archivo applicationhost.config. Luego, agregué la línea https manualmente y reinicié VS.
fuente
En mi caso, simplemente había olvidado que tenía un enlace configurado para (en mi caso) https: // localhost: 44300 en IIS completo. ¡No puedes tener ambos!
fuente
En mi caso, la url localhost fue redirigida a https: // localhost cuando estaba depurando. Esto sucedió de un momento a otro, sin cambiar nada. Resolví esto haciendo una recarga dura en el navegador. Aquí el enlace
fuente