Enabling HTTPS on IIS requires installing a certificate and binding it to your site. This guide covers using a free Let's Encrypt certificate via the Win-ACME client, as well as installing a purchased certificate.
Prerequisites
- IIS installed with a site already configured
- A domain name with its A record pointing to your VPS
- Administrator access
Option 1 — Free Certificate with Win-ACME (Let's Encrypt)
Step 1 — Download Win-ACME
Download the latest release from the official Win-ACME GitHub releases page and extract it to a folder such as C:\win-acme.
Step 2 — Allow Port 80 (Required for Validation)
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
Step 3 — Run Win-ACME
cd C:\win-acme
.\wacs.exe
Follow the interactive prompts: choose "N" for a new certificate, select the IIS site to secure, and let it auto-detect the binding.
Step 4 — Verify the Binding
Win-ACME automatically creates an HTTPS binding in IIS Manager for the selected site. Verify:
https://yourdomain.com
Step 5 — Confirm Auto-Renewal Is Scheduled
Win-ACME creates a Windows scheduled task for automatic renewal:
Get-ScheduledTask -TaskName "win-acme*"
Option 2 — Installing a Purchased Certificate
Step 1 — Generate a CSR
- Open IIS Manager
- Select the server node, open Server Certificates
- Click Create Certificate Request, fill in your organization details
- Save the CSR file and submit it to your certificate authority
Step 2 — Complete the Certificate Request
Once your CA issues the certificate, in IIS Manager: Server Certificates → Complete Certificate Request, and select the certificate file provided.
Step 3 — Bind the Certificate to Your Site
- Select your site in IIS Manager
- Click Bindings → Add
- Type:
https, Port:443, select your certificate from the SSL certificate dropdown - Click OK
Forcing HTTPS Redirect
Install the URL Rewrite module, then add a rule in web.config:
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
Common Errors
Win-ACME validation fails — confirm your domain's DNS actually points to this server and port 80 is reachable from the internet.
"The specified network name is no longer available" during certificate completion — ensure IIS Admin Service is running.
Certificate installed but browser shows a warning — verify the certificate matches the exact domain being accessed and hasn't expired.
Best Practices
- Prefer Win-ACME/Let's Encrypt for cost-free, automatically renewing certificates unless a specific extended-validation certificate is required
- Always force HTTPS redirects for production sites
- Confirm auto-renewal is actually working before relying on it
Related Articles
- How to Install IIS on a Windows VPS
- How to Configure Windows Firewall on a Windows VPS
- How to Deploy an ASP.NET Application on IIS
