54 votos

IIS7: no se puede establecer el nombre de host en el sitio con un certificado SSL y el puerto 443

Considere la posibilidad de un Triunfo 2008 SP2 máquina con IIS7. La tarea es aplicar un certificado y el nombre de host para el uno y el único Sitio en este equipo. El sitio de los encabezados de host necesitan ser abc.123.mysite.com

El primer paso fue la instalación de la .pfx para el Personal de la Tienda, que fue un éxito.

IIS7 encuentra el cert como disponible, pero que no permiten la entrada de un nombre de host. El nombre de host cuadro de texto es SIEMPRE desactivado/gris, incluso antes de que la selección de mi cert. Incluso he eliminado el puerto predeterminado 80 vinculante.

alt text

Pregunta: ¿cómo puedo establecer un nombre de host para este sitio? Es una cuestión de este cert ser un comodín cert? Entiendo que la solicitud SSL entra en el servidor web, y el encabezado de host en el paquete está cifrado. ¿Por qué entonces la IIS6 permitir el encabezado de host para ser especifica, pero IIS7 no?

Actualización: El cert no es parte del problema. He creado un nuevo Sitio en la máquina, y cuando la elección de enlace https, el nombre de host de cuadro de texto está deshabilitado.

50voto

Lindsay Rex Puntos 61

Su no trabajo en la GUI...

Sólo asegúrese de que el el "nombre descriptivo" de la cert va a instalar es la misma que la multidomainname que han hecho para el cert.

es decir. *.compnaydomain.com

si pones en 'Agradable, amable name'*.companydoman.com cert, al instalar el certificado en IIS, en gris el nombre de host cuadro encabezado.

Si utiliza *.companyname.com como el nombre descriptivo, su oro.

Boom.

Lindsay Rex.

34voto

Russ Wheeler Puntos 173

No se puede hacer desde la interfaz de usuario, tienes que hacerlo desde la línea de comandos. He aquí un agradable paseo a través de el proceso:

http://www.sslshopper.com/article-ssl-host-headers-in-iis-7.html

10voto

Justin Scott Puntos 7630

La respuesta corta es que cada IP sólo puede tener un certificado enlazado a él, por lo que el certificado de unión se va a aplicar no importa qué nombre de host se dirige a esa dirección IP. Ser capaz de especificar un nombre de host significaría que usted puede tener varios nombre de host y el certificado de combinaciones en la misma dirección IP y el puerto (como puede con los no-SSL entradas), pero este no es el caso, por lo que el campo no está disponible.

La explicación más completa es que SSL encripta el tráfico, y parte de lo que el tráfico es el de los encabezados HTTP enviado por el navegador al servidor. Uno de esos encabezados sería el "Host" de cabecera que IIS utiliza para determinar el sitio que cargar con la solicitud. Dado que el certificado debe ser cargado para establecer la conexión segura ANTES de los encabezados de solicitud se envía, IIS tiene que seleccionar el certificado en base a la dirección IP y número de puerto, dejando el "Host" de cabecera en el frío como un factor en la determinación de en qué sitio de carga, por lo que no vamos a entrar a uno.

Aquí está un artículo que describe el funcionamiento interno de la conexión SSL con más detalle.

9voto

El SSLShopper respuesta no me funciona porque a la izquierda de la unión sin el encabezado de host, y no podía quitar ese enlace sin romper la conexión para el certificado. Aquí está el método que he utilizado para conseguir que funcione:

Por favor, tenga en cuenta que esta respuesta se asume que el certificado ya ha sido generado, agregado al almacén de certificados, y se añade a IIS. También asume que usted no desea que otros enlaces a su sitio web, además de la SSL.

En primer lugar, necesitamos recopilar un poco de información. Tenemos el hash, el ID de la aplicación y el nombre de host.

  1. Abierto de IIS, seleccione el servidor y haga doble clic en "Certificados de Servidor" en la parte inferior de la sección. Nota el "Dictado" de la dirección. Este es nuestro nombre de host. Guardar este.
  2. Seleccione su sitio
  3. Enlazar su sitio a el puerto 80 mediante el protocolo http
  4. Retire todos los otros enlaces
  5. Enlazar su sitio a puerto 443 mediante el protocolo https
  6. Abra un símbolo del sistema

    netsh http show sslcert
    
  7. Guardar el Hash del Certificado y el IDENTIFICADOR de la Aplicación

  8. Quitar el enlace https en su sitio
  9. En el símbolo del sistema:

    netsh http add sslcert ipport=0.0.0.0:443 certstoreanme=my certhash=<put Certificate Hash here> appid={<put Application ID here>}
    
    appcmd set site /site.name:"<put site name here>" /+bindings.[protocol='https',bindingInformation='*:443:<put host name here>']
    

Nota: Appcmd.exe se puede encontrar en c:\windows\system32\insetsrv. Puede que tenga que ser en esa carpeta para que este comando funcione.

  1. Quitar el http de enlace desde su sitio web

2voto

tialen Puntos 11

En realidad, usted puede agregar un encabezado de host a través de la gui, pero depende de cómo el certificado se denomina ... si me dan un nombre descriptivo de *.xyz.com a mi comodín cert, y seleccione el cert, entonces yo soy capaz de utilizar la interfaz gráfica de usuario. si el nombre descriptivo es algo así como xyzwildcard, y decido que, a continuación, se deshabilita el campo de encabezado de host...

Raro raro

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: