Microsoft KB Archive/187504

= HTTP 1.1 host headers are not supported when you use SSL =

Article ID: 187504

Article Last Modified on 12/3/2007

-

APPLIES TO


 * Microsoft Internet Information Server 4.0
 * Microsoft Internet Information Services 5.0
 * Microsoft Internet Information Services 6.0

-



This article was previously published under Q187504



We strongly recommend that all users upgrade to Microsoft Internet Information Services (IIS) version 6.0 running on Microsoft Windows Server 2003. IIS 6.0 significantly increases Web infrastructure security. For more information about IIS security-related topics, visit the following Microsoft Web site:

http://www.microsoft.com/technet/security/prodtech/IIS.mspx



SYMPTOMS
When you use Secure Sockets Layer (SSL), HTTP 1.1 host headers do not function.



CAUSE
This behavior occurs because host headers are included in the encrypted request. Note that this is not a limitation of IIS, and the HTTP data is still encrypted.



If you have Microsoft Windows Server 2003 installed, you can upgrade to Windows Server 2003 Service Pack 1 (SP1) to work around this issue. With IIS 6.0 on Windows Server 2003 SP1, SSL for host header-based sites is now supported. Visit the following Microsoft Web site for more information about how to configure SSL for host header-based sites:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/596b9108-b1a7-494d-885d-f8941b07554c.mspx



STATUS
This behavior is by design except in Windows Server 2003 Service Pack 1 (SP1).



MORE INFORMATION
When a Web server is configured to use SSL, Internet Information Server (IIS) must determine which certificate to use. IIS versions 4.0 and later support multiple Web servers on a single server, so it is possible to have multiple certificates loaded. Only one certificate is used with a specific Web server.

A server can use IIS versions 4.0 and later to host multiple Web sites, and this is possible by using any of the following methods:
 * By using different IP addresses, but the same port number.
 * By using the same IP address, but different port numbers.
 * By using the same IP address and port number, but using HTTP 1.1 host headers.

A server can use host headers to determine which Web server to use if the IP address or port number are the same and are part of the HTTP 1.1 protocol. This information is included as part of the request header that is sent by the browser to the server.

When a request comes to the server by using SSL, IIS looks in its configuration store to determine which certificate to use. This is accomplished by completing a lookup on the IP/port combination. Under the following conditions, the typical progression of events is to view the host header to determine which Web server to use:
 * There are multiple Web servers on a computer that are all assigned the same IP address and port number.
 * The computer is configured to use host headers.

However, the client request is still encrypted by using SSL. Because of this, the header is encrypted, and IIS cannot determine which server certificate to use or which Web server to communicate with.

Additional query words: iis 4 iis4 iis 5 iis5 iis 6 iis 6.0 iis6 SSL host headers supported

Keywords: kbenv kbprb KB187504

-

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

© Microsoft Corporation. All rights reserved.