Considere una máquina Win 2008 SP2 con IIS7. La tarea es aplicar un certificado y un nombre de host al único sitio en esta máquina. Los encabezados de host del sitio deben serabc.123.example.com
El primer paso fue instalar el .pfx en la Tienda Personal, que fue exitoso.
IIS7 encuentra el certificado como disponible, pero no permitirá la entrada de un nombre de host. El cuadro de texto del nombre de host SIEMPRE está deshabilitado / atenuado, incluso antes de seleccionar mi certificado. Incluso he eliminado el enlace predeterminado del puerto 80.
Pregunta: ¿cómo puedo configurar un nombre de host para este sitio? ¿Se trata de que este certificado sea un comodín? Entiendo que la solicitud SSL llega al servidor web, y el encabezado del host en el paquete está encriptado. ¿Por qué entonces IIS6 permitiría que se especifique el encabezado del host, pero IIS7 no?
Actualización: El certificado no es parte del problema. He creado un nuevo sitio en la máquina, y al elegir el enlace https, el cuadro de texto del nombre de host está desactivado.
fuente
Funciona en GUI ...
Solo asegúrese de que el 'nombre descriptivo' del certificado que está instalando sea el mismo que el nombre de dominio múltiple que ha creado para el certificado.
es decir. * .companydomain.com
si ingresa 'Nice friendly name' para * .companydoman.com cert, al instalar el cert en IIS, aparecerá en gris el cuadro del encabezado del nombre del host.
Si usa * .companyname.com como nombre descriptivo, es dorado.
Auge.
fuente
La respuesta breve es que cada IP solo puede tener un certificado vinculado, por lo que el enlace del certificado se aplicará sin importar qué nombre de host se dirija a esa dirección IP. Ser capaz de especificar un nombre de host implicaría que puede tener múltiples combinaciones de nombre de host y certificado en la misma dirección IP y puerto (como puede hacerlo con entradas no SSL), pero este no es el caso, por lo que el campo no está disponible.
La explicación más completa es que SSL encripta su tráfico, y parte de ese tráfico son los encabezados HTTP enviados por el navegador al servidor. Uno de esos encabezados sería el encabezado "Host" que IIS usa para determinar qué sitio cargar con la solicitud. Dado que el certificado debe cargarse para establecer una conexión segura ANTES de enviar los encabezados de solicitud, IIS debe seleccionar el certificado basándose únicamente en la dirección IP y el número de puerto, dejando el encabezado "Host" en el frío como un factor para determinar qué sitio cargar, para que no te permitan ingresar a uno.
Aquí hay un artículo que describe el funcionamiento interno de la conexión SSL con mayor detalle.
fuente
La respuesta SSLShopper no funcionó para mí porque dejó el enlace sin el encabezado del host, y no se pudo eliminar ese enlace sin romper la conexión al certificado. Aquí está el método que usé para que funcione:
Tenga en cuenta que esta respuesta supone que su certificado ya se ha generado, agregado al almacén de certificados y agregado a IIS. También supone que no desea ningún otro enlace a su sitio web además del SSL.
Primero, necesitamos recopilar información. Necesitamos el hash, el ID de la aplicación y el nombre del host.
Pasos
Abrir un símbolo del sistema
Guarde el hash del certificado y la identificación de la aplicación
En el símbolo del sistema:
Nota: Appcmd.exe se puede encontrar en c: \ windows \ system32 \ insetsrv. Es posible que deba estar en esa carpeta para que este comando funcione.
fuente
La respuesta aceptada aquí es confusa y no creo que sea correcta para la pregunta. No debería ser la respuesta aceptada.
El problema
Tiene un comodín SSL como
*.ipsum.com
y el certificado está instalado, pero no puede elegir un nombre de host para el sitio en IIS cuando intenta agregar un enlace HTTPS porque el cuadro de texto está atenuado.La solución
Su SSL comodín se puede usar con cualquier subdominio, solo necesita asegurarse de comenzar con el Nombre descriptivo del certificado
*
. Prefiero usar el mismo nombre descriptivo que el dominio comodín, p. Ej.,*.ipsum.com
Pero puede llamarlo de cualquier forma que tenga el asterisco:*foo
Le di a mi certificado el nombre descriptivo incorrecto, ¡ayuda!
Desde Windows 8 o Server 2012, puede escribir
certlm.msc
en el menú de inicio para administrar los certificados de la máquina local. En versiones anteriores de Windows, deberá hacer algo un poco más complicado:mmc.exe
desde el principioFile
menú y eligeAdd/Remove Snap-in...
o presiona(Ctrl-M)
Certificates
complemento y presiona,Add >
luego eligeComputer Account
seguidoLocal Computer
en los cuadros de diálogo posteriores y luego presionaFinish
seguidoOK
para cerrar la ventana de ComplementosEn la ventana principal, expanda
Certificates (Local Computer)
yPersonal
luegoCertificates
podrá hacer clic derecho en el certificado, presionarProperties
donde puede actualizar el nombre descriptivo.Cierre y abra el Administrador de IIS y luego puede configurar su nombre de host.
fuente
En realidad, puede agregar un encabezado de host a través de la interfaz gráfica de usuario, pero depende de cómo se llame el certificado ... si le doy un nombre descriptivo de * .xyz.com a mi certificado comodín, y selecciono ese certificado, entonces estoy capaz de usar la interfaz gráfica de usuario. si el nombre descriptivo es algo así como xyzwildcard, y elijo eso, entonces atenúa el campo del encabezado de host ...
Raro raro
fuente
Algunas máquinas no le permitirán editar el nombre del host si el protocolo se cambia a https o después de agregar un certificado SSL. IIS puede ser gruñón a veces.
Este comando de Windows creará un nuevo enlace con el protocolo "https", en el puerto "443", nombre de host "subdominio.domain.com", nombre de sitio "nombre de sitio". Cambie esos valores (entre comillas) para cumplir con sus requisitos. Luego deberá eliminar el enlace anterior si está utilizando el puerto 443.
C:>
cd C:\Windows\System32\inetsrv
C: \ Windows \ System32 \ inetsrv>
appcmd set site /site.name:"site_name" /+bindings.[protocol='https',bindingInformation='*:443:subdomain.domain.com']
fuente
El nombre de host solo se puede agregar cuando el nombre del certificado seleccionado será como el nombre de host * .xyz.com y puede cambiar el nombre del nombre descriptivo del certificado a * .xyz.com desde mmc (complemento).
fuente
Creo que este artículo de KB arrojará algo de luz sobre el tema. En pocas palabras, los encabezados de host HTTP 1.1 no son compatibles cuando utiliza SSL.
Lo que probablemente logrará lo que desea es utilizar la clave de metabase SecureBindings. Por ejemplo, cscript.exe adsutil.vbs set / w3svc / websiteID / SecureBindings "ip.ip.ip.ip: 443: abc.123.mysite.com
fuente
Por qué MS saca esto de la GUI está más allá de mí, ya que, si tiene una aplicación ASP.NET que utiliza archivos de licencia (licx), su sitio no funcionará porque aparece como una dirección IP en lugar de un nombre de dominio . Necesitan DEJAR DE ASUMIR en cada nueva versión de su software: ¡las personas de TI no necesitan ser cuidadas por Microsoft! Geez!
fuente
Creé un certificado autofirmado con * .testcompany.com, seleccioné el recién creado (comenzando con *) en el menú desplegable Editar certificado SSL vinculante, obtuve el cuadro de texto de nombre de host habilitado, creé el nombre de host como 'webapi.b2c .com ',
Actualicé el archivo de hosts en C: \ Windows \ System32 \ drivers \ etc 127.0.0.1 webapi.b2c.com
Ahora puedo navegar por el sitio como ' https://webapp.b2c.com/ '
fuente