A 496 SSL Certificate Required error is an internal status code used by nginx when a client attempts to connect to a location that requires mutual TLS authentication without providing a client certificate.
When ssl_verify_client on; or ssl_verify_client optional_no_ca; is configured in nginx, any client that fails to present a certificate during the TLS handshake is rejected with code 496.
Determining why
The website or API requires two-way SSL (mutual TLS) where both the server and the client must cryptographically identify themselves. Your browser or API client did not transmit a certificate during the TLS connection.
Steps you could possibly take:
- Install your client certificate - Import your
.pfxor.p12client certificate into your operating system’s certificate store or browser settings. - If connecting via curl or an API client:
- Supply your certificate and private key using
--cert cert.pem --key key.pem.
- Supply your certificate and private key using
- If you are the server administrator:
- Check your nginx configuration to ensure client verification is only enforced on routes where it is strictly intended.