Installing a Password-Protected PFX TLS Certificate on IIS (Windows Server 2016 / 2022)
Cloudmersive Private Cloud terminates inbound HTTPS traffic on Windows Server 2016 and Windows Server 2022 using IIS when installing on virtual machine. If you have a TLS certificate in PFX/P12 format (with an import password), this guide walks through:
- Importing the PFX into the correct Windows certificate store
- Adding (or updating) an HTTPS binding in IIS so the site serves HTTPS
Applies to
Prerequisites
Before you start, confirm you have:
- Local administrator access on the IIS server
- The PFX file (example:
yourdomain.pfx)
- The PFX password
- The IIS site already created (or known site name)
- Port 443 allowed through any Windows Firewall rules / upstream network controls
Security note: A PFX contains your private key. Treat it like a secret:
- Transfer it securely
- Store it only as long as needed
- Delete it from disk after import (or move it to a secured location)
Step 1: Copy the PFX to the IIS server
Copy the .pfx file to the server using an approved secure method. A common approach is placing it temporarily in a protected folder such as:
C:\Temp\certs\ (create the folder, restrict access to Administrators)
Avoid leaving certificates on desktop folders or shared network drives longer than necessary.
Step 2: Import the PFX certificate
You can import the PFX using IIS Manager.
Import using IIS Manager
-
Open IIS Manager
- Press
Win + R, type inetmgr, press Enter
-
In the left pane, click the server name (top-level node)
-
Double-click Server Certificates
-
In the right Actions pane, click Import…
-
In the Import dialog:
-
Certificate file: Browse to your .pfx
-
Password: Enter the PFX password
-
Certificate store: Select Personal
-
Allow this certificate to be exported:
- Checked so that IIS can read the certificate
-
Click OK
-
Confirm the certificate now appears in the Server Certificates list
Certificate chain note (intermediates)
Most PFX bundles include intermediate certificates, but not always. If browsers show chain warnings after install:
- Ensure intermediate CA certificates are present under:
Certificates (Local Computer) → Intermediate Certification Authorities → Certificates
If your CA provided separate intermediate .cer files, import those into the Intermediate Certification Authorities store.
Step 3: Add an HTTPS binding in IIS
Once the certificate is imported, you attach it to your site using an HTTPS binding.
-
Open IIS Manager (inetmgr)
-
Expand Sites
-
Click the site you want to secure (e.g., Default Web Site or your Cloudmersive site)
-
In the right Actions pane, click Bindings…
-
Click Add…
-
In the Add Site Binding dialog:
-
Click OK
-
Click Close on the Site Bindings window
Multiple sites on one IP (SNI):
If you have more than one HTTPS site on the same server/IP/port, use:
- A unique Host name per site binding
- Require Server Name Indication (SNI) checked
Otherwise, IIS may present the wrong certificate.
Step 4: Verify HTTPS is working
Browser verification
From a client machine, test:
https://your-domain-or-hostname/
Confirm:
- The browser shows a valid lock icon
- The certificate subject/SAN matches the hostname
- No chain warnings
Common troubleshooting
The certificate does not appear in the IIS certificate dropdown
Most common causes:
- Imported into Current User store instead of Local Computer
- Imported without the private key
Fix:
- Re-import the PFX into Certificates (Local Computer) → Personal
HTTPS works but clients show “certificate not trusted” or chain errors
Cause:
- Missing intermediate certificates on the server
Fix:
- Import the intermediate CA certificate(s) into:
Intermediate Certification Authorities (Local Computer)
You can’t import the PFX / password fails
Cause:
- Wrong password, corrupted PFX, or the file was altered during transfer
Fix:
- Re-download/re-export the PFX from the source
- Confirm password directly with the certificate issuer/export process
IIS shows the wrong certificate for the hostname
Cause:
- Multiple sites share IP:443 without proper SNI hostnames
- Binding hostnames not set correctly
Fix:
-
Ensure each site has:
https binding with correct Host name
- SNI enabled
- Correct certificate selected
Operational tips