The unsupported_certificate alert (TLS alert code 43) is sent when a certificate is received that has a type not supported by the TLS implementation. This can mean the certificate uses an unsupported key algorithm (e.g., an EdDSA certificate where only RSA and ECDSA are accepted), unsupported key size (e.g., a 512-bit RSA key), or has features or extensions that the peer's TLS library cannot process. This alert is relatively rare in practice because most modern TLS implementations support standard RSA and ECDSA certificates, but it can occur with exotic configurations or very old TLS libraries.
The certificate uses a key algorithm that the peer does not support, such as DSA, Ed25519, or Ed448 in environments that only support RSA and ECDSA. This can happen when the server or client has a newer certificate type than the other side can handle.
Modern TLS implementations reject RSA keys smaller than 2048 bits for security reasons. Conversely, some implementations may not support very large key sizes (e.g., 8192-bit RSA). Either extreme can trigger this alert.
The certificate may be a v1 X.509 certificate (lacking the extensions field) when the TLS implementation requires v3 certificates. Modern CAs always issue v3 certificates, but legacy or custom-generated certificates may use older versions.
Inspect the certificate's public key algorithm and key size. Ensure it uses RSA (2048+ bits) or ECDSA (P-256 or P-384), which are universally supported.
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep -E 'Public Key Algorithm|Public-Key'
Confirm the certificate is X.509 v3. Older v1 certificates lack the extensions field and may not be accepted by modern TLS stacks.
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep 'Version:'
If the certificate uses an unsupported algorithm, generate a new key with a widely supported type (RSA 2048+ or ECDSA P-256) and reissue the certificate.
openssl ecparam -genkey -name prime256v1 -out key.pem && openssl req -new -key key.pem -out csr.pem
A certificate in the TLS handshake was corrupt, contained invalid signatures, or could not be parsed.
The certificate was rejected for a reason not covered by other specific TLS certificate alerts.
The TLS handshake could not be completed because the client and server failed to negotiate acceptable security parameters.