SSL certificate maximum validity is being reduced to 200 days from March 2026. Read more →
IIS / Windows Server Advanced ~3 min. read

IIS - Hosting Multiple HTTPS Websites on a Single IP Address

A guide on how to host multiple SSL/TLS websites on a single IP address using Server Name Indication (SNI) in IIS 8.0 and later.

IIS 7/7.5 (EOL 2016)

Products that no longer receive updates.

IIS - Hosting Multiple HTTPS Websites on a Single IP Address

Overview

Traditionally, every SSL certificate required its own unique IP address because the SSL handshake occurred before the HTTP Host header was sent. Server Name Indication (SNI) resolves this limitation by including the hostname as part of the TLS handshake, allowing the server to present the correct certificate without requiring a dedicated IP per domain.

This guide explains how to configure multiple HTTPS websites on the same IP address in IIS.

Prerequisites

  • Windows Server 2012 or later with IIS 8.0+ (full native SNI support). Note that IIS 7/7.5 on Windows Server 2008 does not support SNI natively.
  • Separate SSL certificates for each domain, or a SAN/Wildcard certificate covering all domains.
  • Add binding for wildcard certificate

  • Administrator access to the server.

Step 1: Understanding SNI (Server Name Indication)

SNI is a TLS extension (RFC 6066) that enables the client to specify which hostname it is attempting to connect to during the TLS handshake. All modern browsers and operating systems support SNI:

  • All versions of Chrome, Firefox, Edge, and Safari (from approx. 2010 onwards)
  • Android 4.0+, iOS 4+
  • Windows XP with IE 8+ supports SNI (though XP is now end-of-life)

The only real exceptions are legacy clients like Internet Explorer 6 or Windows XP with IE 7 and older, which do not send SNI. If you still need to support these clients, you must use unique IP addresses.

Step 2: Import certificates for all domains

Each domain you intend to host with HTTPS must have a valid certificate installed on the server:

  1. Open IIS Manager → click the server name → Server Certificates.
  2. Start IIS Manager

  3. Import each certificate using Complete Certificate Request (if the CSR was generated on the server) or Import (if you have a PFX file).
  4. Assign a unique and descriptive Friendly name to each certificate (e.g. site-a.dk 2026, site-b.dk 2026).

Alternative: Use a SAN certificate (Subject Alternative Name) or a Wildcard certificate that covers all your domains. This allows you to manage everything with a single certificate.

Wildcard certificate bindings

Step 3: Create HTTPS bindings with SNI

For each website:

  1. Select the website in IIS Manager → click Bindings in the right-hand panel.
  2. Default bindings overview

  3. Click Add and configure the following:
    • Type: https
    • Add binding for SAN certificate

    • IP address: All Unassigned (or the shared IP)
    • Port: 443
    • Host name: The full domain name (e.g. site-a.dk

      Specify hostname for SAN certificate

      )
    • Tick Require Server Name Indication
    • SAN certificate bindings

    • SSL certificate: Select the correct certificate for this domain
    • Select certificate for default site

  4. Click OK.
  5. Repeat these steps for each website, using its specific hostname and certificate.
  6. SAN binding result

Step 4: Configuration via Command Line (Advanced)

You can also configure SNI bindings using the appcmd

Run command prompt

tool:

:: Tilfoej HTTPS-binding med SNI for site-a.dk
appcmd set site /site.name:"SiteA" /+bindings.[protocol='https',bindingInformation='*:443:site-a.dk',sslFlags='1']

:: Tilfoej HTTPS-binding med SNI for site-b.dk
appcmd set site /site.name:"SiteB" /+bindings.[protocol='https',bindingInformation='*:443:site-b.dk',sslFlags='1']

:: Vis alle bindinger
appcmd list site

Edit bindings for default website

The value sslFlags='1' enables SNI. A value of 0 would require a unique IP address.

Step 5: Verification and Testing

  1. Open each domain in a web browser and verify that the correct certificate is presented.
  2. Wildcard binding result

  3. Use OpenSSL to test SNI from the command line:
:: Test that the server returns the correct certificate for each domain
openssl s_client -connect din-server-ip:443 -servername site-a.dk
openssl s_client -connect din-server-ip:443 -servername site-b.dk

Step 6: Common Pitfalls

  • Wrong certificate displayed: Double-check that the Host name is entered correctly in the binding and that the SNI checkbox is ticked.
  • "Require Server Name Indication" missing: You are likely running IIS 7 or 7.5, which does not support SNI natively. You should upgrade to IIS 8+ or use dedicated IP addresses.
  • Wildcard + specific certificate: If you have bindings for both *.example.dk

    Select wildcard certificate

    and www.example.dk, IIS will prioritise the most specific match.
  • Default site: It is good practice to have one site with a binding that does not require SNI, acting as a fallback for the few legacy clients that lack SNI support.

Select SAN certificate

Strengthen your TLS security

Use IIS Crypto to easily configure secure TLS protocols and cipher suites on your Windows Server.

IIS Crypto TLS configuration guide

Ready to create a free account?

Create a free account and issue your first certificate in under 10 minutes.