증상
다음과 같은 경우를 생각해 볼 수 있습니다.
-
인증서 서비스 웹 등록 역할 서비스는 Windows Server 2008 R2 기반 서버에 설치됩니다.
-
인터넷 Explorer 10 이상 버전을 실행하는 클라이언트 컴퓨터가 있습니다.
-
Windows Server 2008 R2 기반 서버에서 호스트되는 인증서 서비스 웹 등록 페이지에 액세스하려고 합니다.
이 시나리오에서는 인터넷 Explorer 다음과 같은 오류가 발생합니다.
이 웹 브라우저는 인증서 요청 생성을 지원하지 않습니다.
원인
브라우저 버전 검사 인터넷 Explorer 버전을 "IE 1"로 잘못 식별합니다.
해결 방법
이 문제에 대해 지원되는 해결 방법은 다음과 같습니다.
-
인터넷 Explorer 호환성 보기를 구성합니다.
-
웹 등록 페이지 기능을 Windows Server 2012 이동합니다.
-
44~70줄을 다음 콘텐츠로 바꿔 Certsbrt.inc 파일을 수정합니다. 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
추가 정보
Windows Server 2008 R2 기반 서버의 수정되지 않은 Certsbrt.inc 파일의 44~70줄은 다음과 같습니다. 다음은 바꿀 줄입니다.
'' 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