Symptômes
Prenons l’exemple du scénario suivant :
-
Le service de rôle d’inscription web services de certificats est installé sur un serveur Windows Server 2008 R2.
-
Vous avez un ordinateur client exécutant une version Internet Explorer 10 version ultérieure.
-
Vous essayez d’accéder à la page d’inscription web certificate services hébergée sur le serveur Windows Server 2008 R2.
Dans ce scénario, l’erreur suivante est reçue dans Internet Explorer :
Ce navigateur web ne prend pas en charge la génération des demandes de certificat
Cause
La vérification de la version du navigateur identifie de façon incorrecte la version d’Internet Explorer comme étant « IE 1 ».
Solution de contournement
Les solutions de contournement pris en charge pour ce problème sont les suivantes :
-
Configurez l’affichage de compatibilité dans Internet Explorer.
-
Déplacer la fonctionnalité de page d’inscription web vers Windows Server 2012.
-
Modifiez le fichier Certsbrt.inc en remplaçant les lignes 44 à 70 par le contenu suivant. Certsbrt.inc se trouve dans le dossier suivant :
%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
Informations supplémentaires
Les lignes 44 à 70 du fichier Certsbrt.inc nonmodifié sur le serveur Windows Server 2008 R2 sont les suivantes: Voici les lignes à remplacer.
'
' 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