Installation guide · IIS on Windows Server

How to Install an SSL Certificate on IIS (Windows Server)

Install an SSL certificate on IIS in four steps: import the certificate into the Windows certificate store, add the intermediate, create an HTTPS binding and test. Covers IIS Manager, PowerShell, SNI and certificate replacement.

How do I install an SSL certificate on IIS?

To install an SSL certificate on IIS, import it into the Local Computer’s Personal certificate store (with Complete Certificate Request or by importing a .pfx file), make sure the CA’s intermediate certificate is in the Intermediate Certification Authorities store, then add an https binding to your site and select the certificate. IIS has no config file for certificates; everything runs through the Windows certificate store and site bindings.

This guide is the IIS-specific part of our overview on how to install an SSL certificate. It applies to IIS 8.0 and later (Windows Server 2012 up to current releases). If you have not created a CSR (certificate signing request) yet, you can create it in IIS Manager under Server Certificates or with our CSR generator.

ItemWhat you need
IIS version8.0 or newer for SNI (several certificates on one IP)
Files.cer/.crt + intermediate, or one .pfx with key and chain
Private keyOn this server (CSR made in IIS) or inside the .pfx
AccessLocal Administrator
Port443 open in Windows Firewall

Installed? Check it from the outside

Run your domain through our free SSL checker to confirm IIS serves the right certificate, a complete chain and the expected expiry date.

Check your IIS SSL setup

IIS SSL certificate installation at a glance

  1. Import the certificate

    Use Complete Certificate Request if the CSR came from this server; otherwise import a .pfx.

  2. Add the intermediate

    Import the CA bundle into Intermediate Certification Authorities on the Local Computer.

  3. Bind it to the site

    Add an https binding on port 443 with the host name and select the certificate.

  4. Test from outside

    Browse to the site and run an external check of the chain and expiry date.

Step-by-step: install SSL certificate in IIS Manager

1a. CSR created in IIS: complete the request

  1. Open IIS Manager (inetmgr), click the server name, then double-click Server Certificates.
  2. In the Actions pane, click Complete Certificate Request…
  3. Browse to the .cer or .crt file from your CA, enter a friendly name (for example example.com 2026-10) and choose the Personal store.
  4. Click OK. The certificate now appears in the list with its private key.

1b. CSR created elsewhere: import a PFX

If the CSR and key were made on another machine, combine certificate, intermediates and key into a password-protected .pfx (PKCS#12, a single file that carries the key and chain) and click Import… in Server Certificates. With OpenSSL:

openssl pkcs12 -export -out example_com.pfx -inkey example_com.key ^
  -in example_com.crt -certfile example_com.ca-bundle

Or in PowerShell on the server:

$pw = Read-Host -AsSecureString "PFX password"
Import-PfxCertificate -FilePath C:\certs\example_com.pfx `
  -CertStoreLocation Cert:\LocalMachine\My -Password $pw

2. Install the intermediate certificate

IIS sends the chain that Windows can build from its stores. Open certlm.msc, expand Intermediate Certification Authorities → Certificates, right-click, choose All Tasks → Import and select the CA bundle. A .pfx that contains the chain usually places the intermediate there automatically. Why this matters is explained in our guide to the certificate chain.

3. Add the HTTPS binding

  1. In IIS Manager, select your site and click Bindings… in the Actions pane.
  2. Click Add…, set Type to https, Port to 443 and enter the Host name (for example www.example.com).
  3. Tick Require Server Name Indication if other HTTPS sites share this IP.
  4. Select your certificate under SSL certificate and click OK.
Tip: Add the friendly name with a date. When you replace the certificate later, you can tell the old and new one apart in the binding drop-down at a glance.

Other IIS scenarios

  • Wildcard certificate

    Import once, then select the same certificate in each subdomain's https binding with its own host name.

  • PowerShell only

    Server Core and automation: import with Import-PfxCertificate and bind with New-WebBinding.

  • Web farms

    IIS Centralized Certificate Store loads .pfx files from a shared folder for every server in the farm.

Bind the certificate with PowerShell

On Server Core or in deployment scripts, use the WebAdministration module. Replace the thumbprint with the one of your certificate (Get-ChildItem Cert:\LocalMachine\My lists them):

Import-Module WebAdministration
New-WebBinding -Name "Default Web Site" -Protocol https -Port 443 `
  -HostHeader "www.example.com" -SslFlags 1
$binding = Get-WebBinding -Name "Default Web Site" -Protocol https `
  -HostHeader "www.example.com"
$binding.AddSslCertificate("THUMBPRINT", "My")

-SslFlags 1 turns on SNI for this binding. A wildcard SSL certificate on IIS works the same way: one import, then one binding per host name that uses it.

Where does IIS store SSL certificate files?

IIS does not read certificate files from disk. It uses the Windows certificate store on the Local Computer, and each site binding references a certificate by its thumbprint. The private key is held by Windows and should only leave the server as a password-protected .pfx export.

WhatLocationOpen with
Server certificatesLocal Computer → Personal (Cert:\LocalMachine\My)certlm.msc, IIS Manager
Alternative store (IIS 8+)Local Computer → Web Hostingcertlm.msc
IntermediatesLocal Computer → Intermediate Certification Authoritiescertlm.msc
Bindings (site ↔ certificate)HTTP.sys SSL configurationnetsh http show sslcert
Web farmsCentralized Certificate Store (shared folder of .pfx files)IIS Manager → Centralized Certificates

To move a certificate to another server, export it from certlm.msc with the private key as a .pfx. For Apache, Nginx, Java keystores and macOS, see where certificates are stored on other systems.

How do I host several SSL sites on one IIS server?

Give each site its own https binding with a host name and tick Require Server Name Indication. With SNI (Server Name Indication, the hostname the browser sends at the start of the TLS handshake), IIS 8.0 and later pick the right certificate per host name, so all sites can share one IP address on port 443.

A binding without SNI on *:443 or a specific IP acts as the fallback for clients that send no host name. In a web farm, the Centralized Certificate Store matches host names to .pfx file names (for example www.example.com.pfx, or _.example.com.pfx for a wildcard), so you do not have to import certificates on every server.

Tip: IIS 6 (Windows Server 2003) and IIS 7/7.5 (Windows Server 2008/2008 R2) do not support SNI and are past Microsoft’s end of support. If you still run them, one IP and port can carry only one certificate. Migrating to a supported Windows Server is the real fix.

Renew or replace the certificate on IIS

  1. Import the new certificate

    Complete the renewal request, or import the new .pfx, into the Personal store with a dated friendly name.

  2. Switch every binding

    Edit each https binding that used the old certificate and select the new one.

  3. Test from outside

    Confirm the new expiry date and a complete chain on every host name.

  4. Remove the old one

    Delete the expired certificate from the store once nothing references it.

How do I renew an SSL certificate in IIS?

Import the renewed certificate, then edit each binding and select it. IIS keeps using the old certificate until you change the binding, and the change takes effect immediately without an IIS restart. As of October 2026, publicly trusted TLS certificates last at most 200 days, falling to 100 days on 15 March 2027 under CA/Browser Forum ballot SC-081, so plan for regular swaps. When and how to renew an SSL certificate in time is covered in a separate guide.

Common IIS SSL errors

Error or symptomLikely causeFix
Certificate disappears after Complete Certificate RequestPrivate key not on this serverComplete on the server that made the CSR, or import a .pfx
Certificate missing in the binding drop-downNo private key, or wrong storeCheck for the key icon in certlm.msc; re-import as .pfx
“A specified logon session does not exist”Key not imported as exportable/persistedRe-import the .pfx into the Local Computer store
Works on desktop, fails on mobileIntermediate missingImport the CA bundle into Intermediate Certification Authorities
Wrong certificate on one siteSNI not set, or host name mismatchAdd the host name and tick Require Server Name Indication

After every change, test the live site with our SSL checker. It shows the certificate IIS actually serves, the chain and the expiry date.

Verify your IIS SSL installation

See the served certificate, the complete chain and the expiry date in one check. No login needed.

Run the SSL checker

Related articles

Frequently asked questions

Q: How do I install an SSL certificate on IIS (Windows Server)?

A: In IIS Manager, open Server Certificates and use Complete Certificate Request if the CSR was created on this server, or Import for a .pfx file. Make sure the CA's intermediate certificate is in the Intermediate Certification Authorities store. Then open your site's Bindings, add an https binding on port 443 with the host name, select the certificate and test the site from outside.

Q: Where does IIS store SSL certificate files?

A: IIS does not use certificate files on disk. Certificates live in the Windows certificate store on the Local Computer, usually Personal or Web Hosting, and intermediates sit in Intermediate Certification Authorities. Bindings reference a certificate by thumbprint. Open certlm.msc to view them, and export a password-protected .pfx with the private key when you need to move a certificate.

Q: How do I host several SSL sites on one IIS server?

A: Add an https binding with a host name for each site and tick Require Server Name Indication. With SNI, available from IIS 8.0, the browser sends the hostname during the TLS handshake and IIS selects the matching certificate, so all sites can share one IP address on port 443. Web farms can use the Centralized Certificate Store instead of importing certificates on each server.

Q: How do I renew or replace the certificate on IIS?

A: Import the renewed or reissued certificate into the Personal store, ideally with a dated friendly name. Then edit every https binding that used the old certificate and select the new one; the change applies immediately without restarting IIS. Check each host name from outside for the new expiry date and a complete chain, and remove the old certificate once nothing uses it.