What it means: Chrome picked your client certificate, but signing the TLS handshake with its private key failed on your device.
Free online tool — SSL certificate checker: instant results, no signup.
Runs a full TLS check: handshake, protocol versions, certificate chain, trust and expiry.
The site uses client-certificate authentication (mutual TLS): during the handshake the server asks the browser to prove it holds a certificate's private key by signing handshake data. ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED is Chromium net error -141, and that signing step failed on your device. Chromium's source lists the possible causes: access to the private key was denied, the key is not valid for signing, the key relies on a cached handle that is no longer valid, or the cryptographic provider will not sign arbitrary data. Chrome shows “Access to host was denied” and “There was a problem using your login certificate.”
It is not the server rejecting your certificate. That case, an untrusted, expired or wrong certificate, is ERR_BAD_SSL_CLIENT_AUTH_CERT (“didn't accept your login certificate”). Close relatives on the client side are ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY (certificate installed without its key), ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED and ERR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS (the key cannot produce any signature type the server accepts).
| Browser | What you see | Most common trigger |
|---|---|---|
| Chrome, Edge | ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED, “There was a problem using your login certificate” | Smart card removed or locked, key handle went stale |
| Firefox | Its own NSS wording, for example “Unable to digitally sign data required to verify your certificate” (SSL_ERROR_SIGN_HASHES_FAILURE) | Same, but Firefox uses its own certificate store by default |
| Safari | A generic connection error | Keychain identity unusable or access denied |
The signature is computed on the visitor's device, so no proxy setting causes this error. The one check that applies: whichever box terminates TLS (Cloudflare with mTLS, a load balancer, nginx) sets the TLS version, and a TLS 1.3-only policy forces RSA-PSS on every client key, so keep TLS 1.2 on client-certificate hosts while legacy tokens are in use:
server {
listen 443 ssl;
server_name secure.example.com;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_client_certificate /etc/nginx/tls/client-ca.pem;
ssl_verify_client on;
}openssl s_client -connect secure.example.com:443 -servername secure.example.com \
-cert client.pem -key client.key -brief </dev/null
curl -sv --cert client.pem --key client.key https://secure.example.com/ -o /dev/nullIf this succeeds over both TLS 1.2 (-tls1_2) and TLS 1.3 (-tls1_3), the problem is on the users' key stores or tokens.chrome://net-export). The SSL_PRIVATE_KEY_OP event shows the signature algorithm requested and the error returned by the key.certmgr.msc > Personal > Certificates; the certificate dialog should say “You have a private key that corresponds to this certificate.” macOS: Keychain Access should show a key under the certificate, and you must allow the browser when prompted. Chrome on Linux: certutil -d sql:$HOME/.pki/nssdb -L lists certificates; import with pk12util -i cert.p12 -d sql:$HOME/.pki/nssdb.Clearing the cache does not help. If a certificate from a file works but your smart card does not, contact whoever issued the card.
openssl s_client -connect secure.example.com:443 -servername secure.example.com \
-cert client.pem -key client.key -tls1_3 -brief </dev/null
# CONNECTION ESTABLISHED, then reload the site in Chrome with the token insertedA successful reload without the error page, after choosing the certificate, confirms the key can sign. To check the server's protocols and certificate chain from outside, use the SSL/TLS checker.
SSL/TLS is the encryption protocol that protects data between the browser and server. Our tool analyzes the certificate, chain of trust, TLS version, and knownvulnerabilities.
Issuer, validity period, signature algorithm, covered domains (SAN), and validation type (DV/OV/EV).
Full chain verification: from leaf certificate through intermediates to root CA.
Protocol version (TLS 1.2/1.3), cipher suites, Perfect Forward Secrecy (PFS) support.
Set up a monitor — get Telegram and email alerts 30/14/7 days before expiration.
SSL certificate monitoring
TLS config audit
HTTPS as ranking factor
customer trust
www and subdomains.Strict-Transport-Security header forces browsers to always use HTTPS.SSL certificate monitoring, check history and alerts 30 days before expiry.
Sign up freeUsually not. The signature fails on your device, in the smart card, OS key store or provider. A server can only contribute by requiring TLS 1.3 with RSA keys that cannot sign RSA-PSS.
Common reasons are a removed or locked smart card, a middleware or OS update, an expired PIN session, or the server switching to TLS 1.3.
Chrome remembers the certificate chosen for a site. After a failed signature it forgets that choice and retries once; restarting the browser also clears it, so you get the picker again.
Firefox uses its own certificate store by default, while Chrome on Windows and macOS uses the system store and on Linux the NSS database in your home directory (~/.pki/nssdb). The two browsers may be using different copies of the certificate and key.
Open Settings, Privacy and security, Security, Manage certificates, and import the .p12 or .pfx file into your personal certificates with its password, so the private key is installed with the certificate.
Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.