現象
次のような状況を考えます。
-
Microsoft Forefront 脅威管理ゲートウェイ 2010 で Secure Sockets Layer (SSL) web サイトにアクセスしようとするとします。
-
Web サイトでは、サーバー名を示します (SNI) を使用して、サービスを提供する証明書を決定します。
-
脅威管理ゲートウェイの HTTPS 検査が有効になります。
-
脅威管理ゲートウェイ サーバーは、web、上位プロキシ サーバーに発信方向の web 要求を送信するのにはチェーンを使用します。
-
( KB 2545464) あたりHTTPSiDontUseOldClientProtocolsのベンダー パラメーター セットになっています。
このシナリオでは、web サイトにアクセスすることはできません。
原因
脅威管理ゲートウェイ接続エラーまたは web サーバーのエラーの原因となる不正の SNI ヘッダーを構築するため、この問題が発生します。
解決策
この問題を解決するには、脅威管理ゲートウェイのすべてのアレイ メンバーにこの修正プログラムを適用します。この修正プログラムは既定で有効になっていません。この修正プログラムをインストールした後は、修正プログラムを有効にする手順を従う必要があります。
-
メモ帳などのテキスト エディターに次のスクリプトをコピーし、UseOriginalHostNameInSslContex.vbs として保存します。
'' Copyright (c) Microsoft Corporation. All rights reserved.' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS' HEREBY PERMITTED.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' This script forces TMG to use original host name for SSL context when connecting to target server via upstream proxy''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "UseOriginalHostNameInSslContex"Const SE_VPS_VALUE = TRUESub SetValue() ' Create the root object. Dim root ' The FPCLib.FPC root object Set root = CreateObject("FPC.Root") 'Declare the other objects that are needed. Dim array ' An FPCArray object Dim VendorSets ' An FPCVendorParametersSets collection Dim VendorSet ' An FPCVendorParametersSet object Set array = root.GetContainingArray Set VendorSets = array.VendorParametersSets On Error Resume Next Set VendorSet = VendorSets.Item( SE_VPS_GUID ) If Err.Number <> 0 Then Err.Clear ' Add the item. Set VendorSet = VendorSets.Add( SE_VPS_GUID ) CheckError WScript.Echo "New VendorSet added... " & VendorSet.Name Else WScript.Echo "Existing VendorSet found... value: " & VendorSet.Value(SE_VPS_NAME) End If if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then Err.Clear VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE If Err.Number <> 0 Then CheckError Else VendorSets.Save false, true CheckError If Err.Number = 0 Then WScript.Echo "Done with " & SE_VPS_NAME & ", saved!" End If End If Else WScript.Echo "Done with " & SE_VPS_NAME & ", no change!" End IfEnd SubSub CheckError() If Err.Number <> 0 Then WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description Err.Clear End IfEnd SubSetValue
-
脅威管理ゲートウェイのアレイのメンバーに、スクリプト ファイルをコピーし、スクリプトを実行するファイルをダブルクリックします。
既定の動作に戻すには、次の手順に従います。
-
スクリプトの次行を見つけます。
Const SE_VPS_VALUE = true
-
この行を次のように変更します。
Const SE_VPS_VALUE = false
-
脅威管理ゲートウェイのアレイ メンバーのいずれかのスクリプトを再実行します。
修正プログラムの情報
サポートされている修正プログラムは、マイクロソフトのサポートから使用できます。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この修正プログラムは、この資料に記載された問題があったシステムのみに対して適用してください。この修正プログラムは、今後さらにテストを行う場合があります。したがって、この問題の影響が深刻でない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことをお勧めします。修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。このセクションが表示されていない場合は、マイクロソフト カスタマー サービス サポートにお問い合わせのうえ、修正プログラムを入手してください。