Sintomi
Considerare lo scenario descritto di seguito:
-
Il servizio ruolo Registrazione Web di Servizi certificati è installato in un server Windows server basato su Server 2008 R2.
-
Si dispone di un computer client che esegue Internet Explorer 10 o versione successiva.
-
Si tenta di accedere alla pagina di registrazione Web di Servizi certificati ospitata nel server Windows server basato su Server 2008 R2.
In questo scenario viene visualizzato l'errore seguente in Internet Explorer:
Questo Web browser non supporta la generazione di richieste di certificato
Causa
Il controllo della versione del browser identifica erroneamente la versione di Internet Explorer come "IE 1".
Soluzione alternativa
Le soluzioni alternative supportate per questo problema sono le seguenti:
-
Configurare la visualizzazione compatibilità in Internet Explorer.
-
Spostare la funzionalità della pagina registrazione Web in Windows Server 2012.
-
Modificare il file Certsbrt.inc sostituendo le righe da 44 a 70 con il contenuto seguente. Certsbrt.inc si trova nella cartella seguente:
%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
Ulteriori informazioni
Le righe da 44 a 70 nel file Certsbrt.inc non modificato nel server basato su Windows Server 2008 R2 sono le seguenti. Queste sono le righe da sostituire.
'
' 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