HTTP 1.1 host headers are not supported when you use SSL

Article translations Article translations
Article ID: 187504 - View products that this article applies to.
This article was previously published under Q187504
We strongly recommend that all users upgrade to Microsoft Internet Information Services (IIS) version 7.0 running on Microsoft Windows Server 2008. IIS 7.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
For more information about IIS 7.0, visit the following Microsoft Web site:
http://www.iis.net/default.aspx?tabid=1
Beginning in Windows Server 2003 Service Pack 1 (SP1) and IIS 6.0, Secure Sockets Layer (SSL) host headers are supported in IIS. For more information about configuring SSL host headers (IIS 6.0) , visit the following Microsoft Web site:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/596b9108-b1a7-494d-885d-f8941b07554c.mspx?mfr=true
Expand all | Collapse all

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.

Properties

Article ID: 187504 - Last Review: July 3, 2008 - Revision: 7.1
APPLIES TO
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Services 6.0
Keywords: 
kbenv kbprb KB187504

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com