Network Management
Enabling Negotiate Client Certificate for IIS SSL Bindings via netsh
In some scenarios, you need to set Negotiate Client Certificate to Enabled on an HTTPS binding in IIS. This option is not exposed in the IIS Manager GUI, so you must recreate the SSL binding using netsh.
First published date
Last published date
Overview
Prerequisites
-
Administrative access on the Windows server hosting IIS
-
Existing SSL certificate already bound (or ready) for the site
-
Values you will need:
-
ipport (e.g.,
0.0.0.0:443or a specific IP:port) -
certhash (thumbprint of the SSL certificate)
-
appid (GUID associated with the application using the binding)
-
certstorename (typically
MYfor the personal store)
-
Product section
Cause
- You require or accept client certificates and want the client certificate to be sent in the initial TLS handshake, not via a later TLS renegotiation.
- Your clients (browsers, Java apps, proxies, etc.) do not support TLS renegotiation or intentionally reject it due to the known MITM risks around TLS renegotiation. In these cases, leaving negotiation disabled can cause 500 errors or failed client-cert auth until you enable it.
The pop box asking to select certificate switching not from SolarWinds feature
It’s Chrome asking for a client TLS certificate every time the browser establishes a new HTTPS session with your Orion site.
Configure the front-end (IIS / reverse proxy / load balancer) to reuse TLS sessions or not renegotiate client certs on every request, or
Set a browser / GPO policy to auto-select the appropriate CAC certificate for this URL instead of prompting each time.
Resolution
1. Open an Elevated Command Prompt
-
Click Start.
-
Search for Command Prompt.
-
Right‑click Command Prompt and select Run as administrator.
All subsequent commands must be run in this elevated window.
2. List Existing SSL Certificate Bindings
Run:
netsh http show sslcert
This displays all existing SSL certificate bindings and their current settings, including:
-
IP:port the binding is on
-
Certificate hash (certhash)
-
Application ID (appid)
-
Various SSL and client certificate options
Identify the binding that corresponds to your IIS site (by matching the IP:port, certhash, and appid).
3. Remove the Existing SSL Binding
Once you’ve identified the correct binding, remove it using the ipport value from the previous command:
netsh http delete sslcert ipport=XXXXX:443
Replace XXXXX:443 with the exact IP:port from netsh http show sslcert.
If the binding listens on all IPs, it may be 0.0.0.0:443.
4. Re‑add the SSL Binding with Client Certificate Negotiation Enabled
Recreate the binding and explicitly enable:
-
clientcertnegotiation =
enable -
dsmapperusage =
enable
Example:
netsh http add sslcert ipport=0.0.0.0:443 ^
certhash=1X1X1X1X1X1X1X1X1X1X1XX1X1X1X1X1X1X1X ^
appid={2Y2Y2Y2Y2-2Y2Y2Y2-2Y2Y2-2Y2Y2-2Y2Y2Y2Y2Y2Y2Y2Y} ^
certstorename=MY ^
verifyclientcertrevocation=enable ^
VerifyRevocationWithCachedClientCertOnly=disable ^
UsageCheck=enable ^
clientcertnegotiation=enable ^
dsmapperusage=enable
Replace:
-
ipport=0.0.0.0:443with your actual IP:port if different -
certhash=...with the certificate thumbprint fromnetsh http show sslcertor the certificate properties -
appid={...}with the GUID from the original binding
Key parameters:
-
clientcertnegotiation=enable-
This is what actually sets Negotiate Client Certificate to Enabled.
-
-
dsmapperusage=enable-
Required if you have mapped client certificates (e.g., using the certificate-to-account mapping).
-
By default this is disabled, and leaving it disabled can break users who rely on mapped certificates.
-
Other parameters (verifyclientcertrevocation, VerifyRevocationWithCachedClientCertOnly, UsageCheck) are typically left at their default values as shown above unless you have a specific security/policy requirement.
5. Confirm the New Binding
Run:
netsh http show sslcert
Verify that:
-
The binding exists with the correct ipport, certhash, and appid.
-
Client cert negotiation(or equivalent) shows as Enabled. -
DS Mapper Usageshows as Enabled if you setdsmapperusage=enable.
You can then test client certificate authentication on the site. Users with mapped certificates should now authenticate successfully, and the Negotiate Client Certificate behavior will reflect the new settings even though it is not configurable in the IIS GUI.