Yo soy incapaz de IIS Express para aceptar conexiones seguras para VS2010 MVC3 proyecto que estoy desarrollando. Puedo llegar a aceptar insegura conexiones en el puerto 80, pero no seguro en el puerto 443.

He tomado los siguientes pasos, basado en google:

1) Encuentra la huella digital SHA1 para mi IIS Express Server certificado auto-firmado a través de la ejecución de las siguientes en una VS2010 línea de comandos:

certmgr.exe /c /s /r localMachine MY

El resultado fue 9B088F80 A4FC3141 28F62890 70BA1FC4 49FDD009. Más tarde me enteré de que tengo que eliminar los espacios cuando el uso de la huella digital.

2) Elimina cualquier certificado se enlaza con el puerto 443 por la ejecución de las siguientes en una ubicación elevada de la línea de comandos de comandos:

netsh http delete sslcert ipport=0.0.0.0:443

3) Genera un nuevo GUID mediante la ejecución de Crear GUID fuera de la VS2010 menú Herramientas. En mi caso tengo
B0421A5B-FF61-47CE-892D-11AA3A9C7D2A.

4) Instalado el certificado auto-firmado en el puerto 443 por la ejecución de las siguientes en una ubicación elevada de la línea de comandos de comandos:

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

5) Modificación de la ACL ejecutando lo siguiente desde un elevado de la línea de comandos de comandos:

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

6) Modificación de la aplicación.archivo de configuración de IIS Express mediante la adición de un enlace para el puerto 443 y el protocolo https. La sección de sitios para el archivo final parecido a esto:

        <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) Reiniciar el servicio http, mediante la ejecución de la siguiente en una elevación de la línea de comandos de comandos:

net stop http
net start http

8) Cambiar la dirección URL del Proyecto en la ficha Web de mi proyecto de MVC de la página de propiedades para los siguientes:

http://localhost/

De ahorro de la página de propiedades del proyecto desencadenó una reconfiguración del servidor después de haber hecho este cambio.

Cuando ejecuto la aplicación MVC desde dentro de VS2010 correctamente vínculos de vuelta a http://localhost (en el puerto 80, que es el predeterminado; yo no he incluido todos los pasos para obtener IIS Express para trabajar con seguros/normal conexiones en el puerto 80, pero son esencialmente los pasos 5 a 7, pero se centra en http y el puerto 80, no https y el puerto 443).

Sin embargo, tratando de transición para cualquier acción que requiere https me pone un «servidor ha rechazado la conexión de error».

¿Qué estoy haciendo mal?

InformationsquelleAutor | 2011-04-02

4 Comentarios

  1. 75

    Después de que hayas establecido un proyecto para el uso de IISExpress, pulse F4 mientras que el proyecto es seleccionado en el explorador de soluciones para abrir las propiedades y en las propiedades de conjunto de SSL Enable conjunto true y bajo SSL URL establecer la dirección URL con el puerto (443 en su caso) que desea para el SSL.

    Esto funciona para mí, sin pasar por la campana y el certificado autofirmado era automática.

    Para ejecutar el proyecto en esa URL por defecto, usted puede hacer clic derecho en el proyecto, seleccione propiedades y, a continuación, Web y reemplazar la Url del Proyecto con https://localhost:443

    • Wow! Seguro que es MUCHO más fácil de lo que me he encontrado en mi búsqueda. Voy a tener que darle una oportunidad.
    • Para mayor claridad, así de simple es la respuesta a todos los que se tiene que hacer para habilitar SSL en IIS Express? es decir, Marca la línea de comandos de trabajo no es necesario.
    • Sí, la respuesta es simple todo lo que se requiere.
    • en Visual Studio 2012 puedo habilitar SSL, sin embargo no puedo cambiar el número de puerto en el cuadro de diálogo propiedades.
    • En VS 2012 puede utilizar la URL asignada en el «SSL» URL de la propiedad, en mi caso fue localhost:44300
    • Por desgracia para mí, por alguna razón, el IISExpress generado certs no funcionan. Puedo conseguir el restablecimiento de la conexión, y el error «fatal error al intentar acceder a las credenciales del servidor SSL clave privada. El código de error devuelto por el módulo criptográfico es 0x8009030D. El error interno del estado es 10001.» en el registro del sistema
    • Creo que no se puede cambiar el número de puerto, porque el IIS Express desarrollo de certificado TLS está obligado a https://localhost:44300/. Corrí como admin netsh http show sslcert ipport=0.0.0.0:44300 y que es el caso en mi máquina.

  2. 6

    Me topé con la respuesta.

    En el paso 6, yo estaba modificando el mal IIS Express de la aplicación.archivo de configuración. Resulta que hay un «maestro» archivo de configuración en la aplicación del directorio de inicio (por ejemplo, C:\Program Files (x86)\IIS Express\AppServer, en mi sistema), que es el que he modificado.

    El segundo y archivo correcto para modificar es el uno en el área de datos del Usuario (por ejemplo, C:\Users\Mark.ARCABAMA\Documents\IISExpress\config, en mi sistema).

  3. 6

    Si usted ha seguido jbtule pasos y SSL no está funcionando, asegúrese de que el puerto está en el formato :443XX.

    Visual Studio hizo esto de forma automática para el primer proyecto que habilita SSL, pero ninguno de los subsiguientes proyectos parecen haber aleatorio puertos SSL. El cambio a la anterior 443 estructura bajo la Project > Web interfaz de usuario lo tengo y funciona para mí.

    • Esta absurda formato de magic: «443XX» es la respuesta que necesitaba. Gracias.
  4. 0

    Me gustaría agregar la solución que me ayudó con el mismo problema.

    VS mostró una dirección URL de SSL que fue https://[an IP, not localhost]:44367

    La url era reservado, que me encontré con
    netsh http show urlacl

    Me corrió netsh http delete urlacl https://[an IP, not localhost]:44367, reinicia VS, volvió SSL desactivado mediante la configuración de SSL en falso, y, a continuación, en nuevo. Esto se ha corregido la dirección URL de SSL.

Dejar respuesta

Please enter your comment!
Please enter your name here