Síntomas
Imagine la siguiente situación:
-
El servicio de rol inscripción web de Servicios de certificados se instala en un servidor basado Windows Server 2008 R2.
-
Tiene un equipo cliente que se ejecuta Internet Explorer 10 una versión posterior.
-
Intenta obtener acceso a la página Inscripción web de Servicios de certificados hospedada en el servidor basado en Windows Server 2008 R2.
En este escenario, se recibe el siguiente error en Internet Explorer:
Este explorador web no admite la generación de solicitudes de certificado
Causa
La comprobación versión del explorador identifica incorrectamente la versión de Internet Explorer como "IE 1".
Solución alternativa
Las soluciones alternativas admitidas para este problema son las siguientes:
-
Configurar la vista de compatibilidad en Internet Explorer.
-
Mueva la funcionalidad de la página Inscripción web a Windows Server 2012.
-
Modifique el archivo Certsbrt.inc reemplazando las líneas 44 a 70 por el siguiente contenido. Certsbrt.inc se encuentra en la carpeta siguiente:
%WINDIR%\system32\certsrv\en-us
'
' If there is no '.' in the UserAgent string, this will return the next character if any
' as the version number. ' We extract the string until a '.' and then convert it
' into integer. If -1 is returned from this function then it isn't MSIE
'
Function GetInternetExplorerVersionNumber(sHttpUserAgent)
Dim nMSIE
GetInternetExplorerVersionNumber = -1 nMSIE = InStr(sHttpUserAgent, "MSIE")
If 0 <> nMSIE Then
numChar = InStr(Mid(sHttpUserAgent, nMSIE + 5), ".") - 1
If -1 = numChar Then ' no '.' in the string
numChar = 1
End If
If nMSIE + 5 + numChar - 1 <= Len(sHttpUserAgent) Then
GetInternetExplorerVersionNumber = CInt(Mid(sHttpUserAgent, nMSIE + 5, numChar))
End If
End If
End Function
'
' We define a Old MSIE based browser
' if it has the string MSIE that is followed by a version number that is less than 4
' NOTE:
' IsOldMSIE = False does not imply MSIE >= 4.
'
' i.e. Not IsOldMSIE("abc") = True
' Not IsOldMSIE("MSIE") = True
'
Function IsOldMSIE(sHttpUserAgent)
Dim nMSIE
Dim sMSIEVersion
IsOldMSIE = False
nMSIE = InStr(sHttpUserAgent, "MSIE")
If nMSIE <> 0 AND (nMSIE+5 < Len(sHttpUserAgent)) Then
nVersion = GetInternetExplorerVersionNumber(sHttpUserAgent)
If -1 <> nVersion Then
IsOldMSIE = nVersion < NEW_MSIE_VERSION
End If
End If
End Function
Más información
Las líneas 44 a 70 del archivo Certsbrt.inc sin modificar en el servidor basado en Windows Server 2008 R2 son las siguientes. Estas son las líneas que se van a reemplazar.
'
' We define a Old MSIE based browser
' if it has the string MSIE that is followed by a version number that is less than 4
' NOTE:
' IsOldMSIE = False does not imply MSIE >= 4.
'
' i.e. Not IsOldMSIE("abc") = True
' Not IsOldMSIE("MSIE") = True
'
Function IsOldMSIE(sHttpUserAgent)
Dim nMSIE
Dim sMSIEVersion
nMSIE = InStr(sHttpUserAgent, "MSIE")
If nMSIE=0 Then
IsOldMSIE = False
ElseIf nMSIE+5 < Len(sHttpUserAgent) Then
sMSIEVersion = Mid(sHttpUserAgent, nMSIE+5, 1)
IsOldMSIE = CInt(sMSIEVersion) < NEW_MSIE_VERSION
Else
IsOldMSIE = False
End If
End Function