Configurar SSL en varios sitios web en IIS con configuración compartida

En este artículo se describe cómo configurar la capa de sockets seguros (SSL) en varios sitios web de Microsoft Internet Information Services (IIS) con configuración compartida.

Versión del producto original:   Internet Information Services 7.0, 7.5
Número KB original:   2548832

Resumen

Suponga que desea configurar la configuración compartida para dos servidores IIS. Para este ejemplo, se denominan Servidor A y Servidor B. Va a tener dos sitios web diferentes, aquí denominados Site1 y Site2. Ambos sitios web van a usar sus propias direcciones IP dedicadas, como se muestra a continuación:

Servidor A --> Site1 --> 10.10.10.1
Servidor A --> Site2 --> 10.10.10.2

Servidor B --> Site1 --> 10.10.10.3
Servidor B --> Site2 --> 10.10.10.4

Ahora, configura el servidor A B para la configuración compartida, pero se encuentra en una situación única cuando se trata de los enlaces de sitios & web. La configuración de enlaces de sitios web suele ser similar al ejemplo siguiente en un archivoapplicationHost.config web:

<site name="Site1" id="1">
    <application path="/" applicationPool="Site1">  
        <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot" />
    </application>
    <bindings>  
        <binding protocol="http" bindingInformation="10.10.10.1:www.contoso.com" />
        <binding protocol="https" bindingInformation="10.10.10.1:443:" />
    </bindings>
</site>

Como puede ver, no hay nada que identifique el servidor web por su nombre (por ejemplo, el servidor A). Por lo tanto, cuando enlaza Site1 a 10.10.10.1 en el servidor A, esta configuración también se replica para el servidor B. Pero la tarjeta NIC del servidor B no reconoce la dirección IP 10.10.10.1. De hecho, desea enlazar 10.10.10.3 al Sitio1 en el puerto 443 y 80 para el servidor B.

Para superar esta situación, debe agregar manualmente enlaces adicionales para cada sitio web. Por ejemplo, deberá agregar enlaces adicionales para IP 10.10.10.3 y el puerto 443 en el servidor A, aunque el servidor A no comprenda 10.10.10.3. Esto está bien, ya que IIS en el servidor A omitirá esa IP al iniciarse, ya que no la puede encontrar. Puede usar el siguiente comando appcmd.exe para agregar este enlace:

appcmd.exe set site /site.name:Site1 /+bindings.[protocol="https",bindingInformation="10.10.10.3:443:"]

Nota

La interfaz de usuario del Administrador de IIS no le permitirá hacerlo para https; debe usar la herramienta appcmd.exe.

Una vez que agregue este enlace mediante appcmd.exe, la nueva configuración del archivo applicationHost.config tendrá el siguiente aspecto:

<site name="Site1" id="1">  
    <application path="/" applicationPool="Site1">
        <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot" />
    </application>  
    <bindings>
        <binding protocol="http" bindingInformation="10.10.10.1:www.contoso.com" />
        <binding protocol="https" bindingInformation="10.10.10.1:443:" />
        <binding protocol="https" bindingInformation="10.10.10.3:443:" />
    </bindings>
</site>

Recuerde que aún no ha asignado un certificado real a este sitio. Acaba de agregar los enlaces IP para el puerto 443. Ahora puede asignar un certificado existente mediante la interfaz de usuario del administrador de IIS. Para obtener más información acerca de cómo hacerlo, vea How to Set Up SSL on IIS 7.

Una vez que haya asignado un certificado, las entradas se configurarán en http.sys y podrá verlos con el siguiente comando NETSH desde un símbolo del sistema:

netsh http show sslcert  

Del mismo modo, siga los pasos anteriores y la lógica para agregar el resto de los sitios y certificados a los servidores restantes. La información del certificado SSL nunca se almacena en elapplicationHost.config archivo. Es local en el equipo y es responsabilidad del administrador del servidor A asegurarse de exportar e importar los certificados correctos en todos los servidores de la granja de servidores que usan la configuración compartida.

Más información

Puede obtener más información sobre cómo administrar la configuración compartida en Configuración compartida.