Síntomas
Imagine la siguiente situación:
-
El servicio de rol de inscripción web de servicios de certificados se instala en un servidor basado en Windows Server 2008 R2.
-
Tiene un equipo cliente que ejecuta Internet Explorer 10 o una versión posterior.
-
Intenta obtener acceso a la página De inscripción web de servicios de certificado hospedada en el servidor basado en R2 de Windows Server 2008.
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 de la 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.
-
Mover 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 contenido siguiente. Certsbrt.inc se encuentra en la siguiente carpeta:
%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 nMSIEGetInternetExplorerVersionNumber = -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 IfEnd 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 IfEnd Function
Más información
Las líneas 44 a 70 en el archivo Certsbrt.inc no modificado 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 IfEnd Function