Ознаки
Розглянемо такий сценарій:
-
Службу ролі веб-реєстрації служб сертифікатів інстальовано на сервері на основі Windows Server 2008 R2.
-
У вас є клієнтський комп'ютер під керуванням Internet Explorer 10 або пізнішої версії.
-
Ви намагаєтеся отримати доступ до веб-реєстрації служби сертифікатів сторінки, розміщеної на сервері Windows Server 2008 R2.
У цьому випадку в Internet Explorer з'являється таке повідомлення про помилку:
Цей браузер не підтримує створення запитів сертифікатів
Причина
Перевірка версії браузера неправильно визначає версію Internet Explorer як "IE 1".
Інші способи вирішення
Нижче наведено підтримувані способи вирішення цієї проблеми.
-
Настроювання режиму сумісності в Браузері Internet Explorer.
-
Переміщення функціональності сторінки веб-реєстрації до Windows Server 2012.
-
Змініть файл Certsbrt.inc, замінивши рядки від 44 до 70 наведеним нижче вмістом. Certsbrt.inc розташовано в такій папці:
%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
Додаткові відомості
Рядки 44–70 у незміненому файлі Certsbrt.inc на сервері під керуванням Windows Server 2008 R2 наведено нижче. Це лінії, які потрібно замінити.
'' 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