Síntomas
Imagine el siguiente escenario:
-
Utilice un cliente que no es un cliente de proxy web como un cliente de servidor de seguridad o un cliente de SecureNAT en una red corporativa.
-
El cliente intenta conectarse a un sitio Web HTTPS a través de un servidor que está ejecutando Microsoft Forefront Threat Management Gateway (TMG) 2010. Por ejemplo, el cliente intenta conectarse a https://contoso.com.
-
Inspección de HTTPS está habilitada en el servidor que está ejecutando TMG 2010.
-
El sitio Web de HTTPS utiliza un especial basado en el sistema de nombres de dominio DNS equilibrio de carga algoritmo en el que el servidor DNS devuelve una dirección IP alterna que tiene un valor de "Time to Live" bajo. En este caso, las consultas sucesivas para el sitio Web (contoso.com) como resultado direcciones IP distintas.
En este escenario, el cliente no pueda explorar el sitio Web. Además, la siguiente puede grabarse en el registro de aplicación en el servidor que está ejecutando TMG 2010:
Estado de 12227 el nombre en el certificado de servidor SSL proporcionado por un servidor de destino no coincide con el nombre de host solicitado.
Causa
Este problema se produce debido al algoritmo de equilibrio de carga de basado en DNS especial.
Cuando un cliente de proxy no sea de red abre un sitio Web como https://contoso.com, el cliente resuelve el nombre en Sí y se intenta establecer una conexión Secure Sockets Layer (SSL) con la dirección IP de destino, como, por ejemplo, IP-1.
Cuando está habilitada la inspección de HTTPS, TMG 2010 establece una conexión en nombre del cliente e intenta validar el certificado del servidor antes de habilita la conexión del cliente. Uno de los muchos controles que se llevan a cabo (por ejemplo, validez y revocación) comprueba que se va a conectar el sitio Web correcto.
La comprobación se realiza de la siguiente manera:
-
TMG 2010 lee los campos de Nombre de sujeto y Nombre alternativo del sujeto del certificado recuperado, como Contoso.com en este caso.
-
TMG 2010 intenta resolver el certificado mediante DNS.
-
TMG 2010 comprueba si el resultado coincide con la dirección IP de destino que utilizó el cliente cuando se estableció la conexión.
Debido a que el equilibrio de carga está resuelto para el sitio Web, la resolución de nombres en TMG 2010 proporciona una dirección IP diferente, IP-2. Por lo tanto, dado que las dos direcciones IP no son la misma (IP-1 frente a IP-2), TMG 2010 rechaza la conexión.
Solución
Para resolver este problema, instale el paquete de hotfix que se describe en el siguiente artículo de Microsoft Knowledge Base:
2735208 paquete acumulativo 3 de puerta de enlace (TMG) 2010 Service Pack 2 para Forefront Threat ManagementNota: Después de instalar esta revisión, puede configurar una exclusión establecida de nombre de dominio para la validación de direcciones IP de inspección de HTTPS. Estos son los nombres de dominio para el que se suprime la parte de validación de la dirección de la inspección de HTTPS. Sin embargo, se siguen realizando otros pasos de validación.
La siguiente secuencia de comandos configura la exclusión establecido de nombre de dominio será la que se menciona en el principio de la secuencia de comandos. El script también crea la exclusión establecida de nombre de dominio si aún no existe. Mediante las herramientas de administración de TMG regulares como la consola administrativa y secuencias de comandos, el administrador puede rellenar la variable DomainNameSet , según corresponda.
' The domain name set for the exclusion listconst strDomainNameSetName = _
"HTTPS-inspection IP address validation exception"
const strDomainNameSetDescription = "HTTPS sites whose certificate's domain-name matches this set are excluded from the validation that the domain-name indeed resolves to the IP address that the Web client originally connected to"
Const strVpsGUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"
Const strVpsPropertyName = "HTTPSiIpAddressValidationExclusionDNSet"
Const Error_FileNotFound = &H80070002
Set objArray = CreateObject("FPC.Root").GetContainingArray()
Set objDNSet = OpenDNSet( _
objArray.RuleElements.DomainNameSets, _
strDomainNameSetName, _
strDomainNameSetDescription _
)
Set objVPSet = OpenVPSet(objArray.ArrayPolicy, strVpsGUID)
objVPSet.Value(strVpsPropertyName) = objDNSet.PersistentName
objArray.Save
function OpenDNSet(objDNSets, strDNSetName, strDNSetDescription)
On Error Resume Next
Set objDNSet = objDNSets.Item(strDNSetName)
' Save the Err properties in case it needs to be re-raised
errNumber = Err.Number
errSource = Err.Source
errDescription = Err.Description
errHelpFile = Err.HelpFile
errHelpContext = Err.HelpContext
On Error GoTo 0
if errNumber = Error_FileNotFound Then
Set objDNSet = objDNSets.Add(strDNSetName)
objDNSet.Description = strDNSetDescription
Elseif errNumber < 0 Then
' An error other than "file not found" occured -- re-raise the error,
' this time not under "On Error Resume Next"
Err.Raise errNumber, errSource, errDescription, errHelpFile, errHelpContext
End If
Set OpenDNSet = objDNSet
end function
function OpenVPSet(objParent, strVpsGUID)
Set objVPSets = objParent.VendorParametersSets
On Error Resume Next
Set OpenVPSet = objVPSets.Item(strVpsGUID)
' Save the Err properties in case it needs to be re-raised
errNumber = Err.Number
errSource = Err.Source
errDescription = Err.Description
errHelpFile = Err.HelpFile
errHelpContext = Err.HelpContext
On Error GoTo 0
if errNumber = Error_FileNotFound Then
Set OpenVPSet = objVPSets.Add(strVpsGUID)
Elseif errNumber < 0 Then
' An error other than "file not found" occured -- re-raise the error,
' this time not under "On Error Resume Next"
Err.Raise errNumber, errSource, errDescription, errHelpFile, errHelpContext
End If
end function
Solución alternativa
Para evitar este problema, configure el cliente para que actúe como cliente de proxy web. En este caso, la resolución de nombres se produce sólo en el servidor TMG. O bien, excluir al cliente afectado de inspección HTTPS o excluir el sitio Web de destino problemático, tal como se describe en el siguiente sitio Web de Microsoft TechNet:
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Referencias
Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft