Microsoft KB Archive/919170

= A hotfix is available to let you use a different upstream port for Secure Sockets Layer tunneling in Microsoft Internet Security and Acceleration (ISA) Server 2004 =

Article ID: 919170

Article Last Modified on 12/4/2007

-

APPLIES TO


 * Microsoft Internet Security and Acceleration Server 2004 Standard Edition
 * Microsoft Internet Security and Acceleration Server 2004 Enterprise Edition

-





INTRODUCTION
This article describes a hotfix that you can apply to let you use a different upstream port for Secure Sockets Layer (SSL) tunneling in Microsoft Internet Security and Acceleration (ISA) Server 2004.



MORE INFORMATION
When this hotfix is not applied, ISA Server determines how to connect to an upstream Web proxy server according to the port that the client computer used to connect to ISA Server. In this scenario, one of the following actions occurs:
 * If the client computer connects to ISA Server on port 8080, ISA Server forwards the request to the upstream Web proxy server on port 8080.
 * If the client computer connects to ISA Server on port 8443, ISA Server forwards the request to the upstream Web proxy server on port 8443. In this instance, ISA Server performs the forwarding operation over SSL.

You can configure the ports on which ISA Server listens for client connections on the Web Proxy tab of the Properties dialog box for the network in ISA Server 2004. Also, you can configure the ports that ISA Server uses to connect to an upstream Web proxy server in the Upstream Server Setting dialog box of the particular Web chaining rule.

Added functionality
This hotfix adds the following functionality to ISA Server 2004.

If a client connects to ISA Server on port 8080 and uses the HTTP CONNECT method to request SSL tunneling, ISA Server forwards the CONNECT request to the upstream Web proxy server on port 8443. In this scenario, ISA Server does not forward the request over SSL.

This functionality may help in a scenario that resembles the following:
 * The upstream Web proxy server applies different policies depending on the port on which it receives the request from the downstream ISA Server computer.
 * You are not able to configure the client computers to use different ports to connect to the downstream ISA Server computer.

Hotfix installation information
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.

To enable this functionality, install the hotfix package that is described in the following Microsoft Knowledge Base article:

920716 Description of the ISA Server 2004 hotfix package: June 6, 2006

After you install this hotfix, you must run the following script to enable the functionality that this hotfix provides. This script configures ISA Server to use port 8443 for SSL tunnel requests.

Note You can change the port number from 8443 to any port number. If you set the port number to 0 (zero), ISA Server uses port number 8080 for SSL tunnel requests. Sub AddRedirectHostConnectPort

' Create the root object. Dim root ' The FPCLib.FPC root object Set root = CreateObject(&quot;FPC.Root&quot;)

' Declare the other objects that are required. Dim array ' An FPCArray object Dim VendorSets ' An FPCVendorParametersSets collection Dim VendorSet ' An FPCVendorParametersSet object

' Obtain references to the array object ' and to the network rules collection. Set array = root.GetContainingArray Set VendorSets = array.VendorParametersSets

On Error Resume Next Set VendorSet = VendorSets.Item( &quot;{143F5698-103B-12D4-FF34-1F34767DEabc}&quot; )

If Err.Number <> 0 Then Err.Clear

' Add the item. Set VendorSet = VendorSets.Add( &quot;{143F5698-103B-12D4-FF34-1F34767DEabc}&quot; ) CheckError WScript.Echo &quot;New VendorSet added... &quot; & VendorSet.Name

Else WScript.Echo &quot;Existing VendorSet found... value- &quot; & VendorSet.Value(&quot;RedirectHostConnectPort&quot;) End If

if VendorSet.Value(&quot;RedirectHostConnectPort&quot;) <> 1 Then

Err.Clear VendorSet.Value(&quot;RedirectHostConnectPort&quot;) = 8443

If Err.Number <> 0 Then CheckError Else VendorSets.Save false, true CheckError

If Err.Number = 0 Then WScript.Echo &quot;Done, saved!&quot; End If End If Else WScript.Echo &quot;Done, no change!&quot; End If

End Sub

Sub CheckError

If Err.Number <> 0 Then WScript.Echo &quot;An error occurred: 0x&quot; & Hex(Err.Number) & &quot; &quot; & Err.Description Err.Clear End If

End Sub

AddRedirectHostConnectPort

Hotfix removal information
Before you remove this hotfix, you must run the following script to remove the RedirectHostConnectPort value:  ' ' 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 removes a VendorParametersSet value. 

Sub RemoveRedirectHostConnectPort

' Create the root obect. Dim root ' The FPCLib.FPC root object Set root = CreateObject(&quot;FPC.Root&quot;)

'Declare the other objects needed. Dim array      ' An FPCArray object Dim VendorSets ' An FPCVendorParametersSets collection Dim VendorSet  ' An FPCVendorParametersSet object

' Get references to the array object ' and the network rules collection. Set array = root.GetContainingArray Set VendorSets = array.VendorParametersSets

On Error Resume Next Set VendorSet = VendorSets.Item( &quot;{143F5698-103B-12D4-FF34-1F34767DEabc}&quot; )

If Err.Number <> 0 Then Err.Clear

WScript.Echo &quot;VendorParametersSet does not exist.&quot;

Else Err.Clear VendorSet.RemoveValue(&quot;RedirectHostConnectPort&quot;)

If Err.Number <> 0 Then CheckError Else VendorSets.Save false, true CheckError

If Err.Number = 0 Then WScript.Echo &quot;Done removing RedirectHostConnectPort, saved!&quot; End If       End If    End If

End Sub

Sub CheckError

If Err.Number <> 0 Then WScript.Echo &quot;An error occurred: 0x&quot; & Hex(Err.Number) & &quot; &quot; & Err.Description Err.Clear End If

End Sub

RemoveRedirectHostConnectPort



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.



MORE INFORMATION
For more information, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

Keywords: kbbug kbfix kbqfe kbpubtypekc kbhotfixserver KB919170

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.