How to Manage, Renew, and Install SSL Certificates on Windows Server IIS
Managing SSL/TLS certificates across IIS (Internet Information Services) environments is one of those administrative tasks that feels simple—until an expired certificate unexpectedly brings down an internal web application or triggers browser security warnings for customer-facing web services. With major web browsers continually pushing for shorter certificate lifespans, system administrators must maintain clear procedures for requesting, renewing, installing, and troubleshooting web security certificates on Windows Server.
This guide walks through the end-to-end lifecycle of managing certificates in Internet Information Services, covering Certificate Signing Requests (CSR), commercial Certificate Authority (CA) installations such as GoDaddy, internal testing with self-signed certs, and binding management.
Pro Tip: Don't forget to bookmark this page in your browser (pressCtrl + DorCmd + D) for quick reference during emergency certificate rotations and annual renewal cycles!
1. Generating a Certificate Signing Request (CSR) in IIS
To acquire a public SSL certificate from commercial providers like GoDaddy, Digicert, or Sectigo, you must first generate a CSR on the target IIS server. The CSR contains your public key and organizational details which the CA signs.
Step-by-Step CSR Creation:
- Open Internet Information Services (IIS) Manager
(run
inetmgr). - In the left-hand Connections pane, select your top-level Server Name.
- In the center pane, double-click on Server Certificates.
- In the right-hand Actions menu, click Create Certificate Request...
- Complete the Distinguished Name Properties field:
- Common Name: The exact Fully Qualified
Domain Name (FQDN) (e.g.,
portal.yourcompany.com). - Organization / Organizational Unit: Your legal company name and department.
- City/Locality, State, Country: Standard geographic details.
- Common Name: The exact Fully Qualified
Domain Name (FQDN) (e.g.,
- Select Microsoft RSA SChannel Cryptographic Provider and a bit length of at least 2048 (4090 is recommended for enhanced security).
- Specify a destination path for your text file (e.g.,
C:\Certificates\CSR_2026.txt) and finish the wizard.
2. Installing Public SSL Certificates (GoDaddy & Third-Party CAs)
Once your CA issues the certificate, you will typically receive a
.crt or .p7b file along with an
Intermediate Bundle. For comprehensive technical requirements on
trust chains, check out Microsoft's IIS SSL/TLS Overview.
Completing the Certificate Request in IIS:
- Return to IIS Manager > Server Certificates.
- Click Complete Certificate Request... in the Actions pane.
- Browse to your CA-provided file, specify a friendly name
(e.g.,
GoDaddy Web Cert 2026-2027), and select Web Hosting as the certificate store. - Click OK to import the certificate into the Windows certificate store.
Binding the Certificate to Your Web Site:
Importing the certificate is only half the battle; you must explicitely bind it to HTTPS protocol listeners:
- In IIS Manager, expand Sites and click your target website.
- Click Bindings... in the right-hand pane.
- Select https and click Edit (or click Add... if HTTPS isn't bound yet).
- Select your newly imported certificate from the SSL certificate drop-down box.
- Ensure Require Server Name Indication (SNI) is checked if host multiple SSL sites on a single IP address.
- Click OK, then close the Bindings window.
3. Generating Self-Signed Certificates for Lab & Internal Staging
For internal applications or isolated testing environments, purchasing commercial certificates is often unnecessary. PowerShell makes generating custom self-signed certificates effortless.
Run the following command in an elevated PowerShell prompt to create a self-signed certificate placed directly into your local machine store:
New-SelfSignedCertificate -DnsName "testapp.local", "localhost" `
-CertStoreLocation "cert:\LocalMachine\My" `
-NotAfter (Get-Date).AddYears(1) `
-FriendlyName "IIS Development Test Cert"
You can also create self-signed certificates directly inside IIS
Manager by selecting Create Self-Signed Certificate...
under the Server Certificates action menu. Remember that
client machines will throw a browser warning unless the public key
is trusted via Local Machine Trusted Root Certification
Authorities store or distributed via Active Directory
Group Policy (GPO).
4. Certificate Renewal Workflows & Best Practices
Renewing an existing certificate in IIS follows two general workflows depending on how your CA processes renewals:
| Method | Process Description | Best Used For |
|---|---|---|
| In-Place CSR Renewal | Right-click certificate in IIS Manager > Renew... Generates a CSR directly tied to existing parameters. | Standard renewals with identical SAN/FQDN attributes. |
| Importing PFX / PKCS#12 | Export cert with private key from another machine or CA tool and import directly via MMC or IIS. | Multi-server IIS web farms or wildcard certs. |
Exporting & Importing PFX Files across Web Farms
If you manage multiple web servers behind a load balancer, export
the certificate as a .pfx file containing the
private key:
# Exporting via PowerShell
$cert = Get-ChildItem -Path Cert:\LocalMachine\My\THUMBPRINT_HERE
$password = ConvertTo-SecureString -String "YourStrongPassword123!" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath "C:\Certs\ExportedCert.pfx" -Password $password
To explore modern automated renewal methods, refer to the Let's Encrypt Documentation on ACME clients like win-acme for Windows IIS environments.
5. Common IIS SSL Troubleshooting Scenarios
- Private Key Missing: If a certificate appears
in MMC but cannot be selected in IIS, the private key link may
be broken. Run
certutil -repairstore my "THUMBPRINT"to re-associate it. - Untrusted Root/Intermediate Errors: Ensure intermediate CA certificates are installed in the Intermediate Certification Authorities store on Windows Server.
- Port 443 Conflicts: Check for port conflicts
using
netstat -ano | findstr :443if IIS fails to start site bindings.