OpenSSL: X.509 errors
Our goal is to simplify the ecosystem by consolidating the errors and their documentation (similarly to web documentation) and better explaining what the validation errors mean.
Correctly validating X.509 certificates turns out to be pretty complicated (e.g., Georgiev2012, Ukrop2019). Yet certificate validation is crucial for secure communication on the Internet (think TLS).
For every error, we aim to provide our redesigned documentation ( ), an example certificate ( ), original documentation provided by the library ( , unused or deprecated errors denoted by ). Furthermore, we provide links to corresponding errors from other libraries ( ). In the future, we plan on adding error frequencies based on IP-wide scans and elaborating on the consequences of individual errors.
Time validity errors
Errors occuring when a certificate is outside its validity period or when it is revoked by its CA.
Relevant links: Certificate Validity (RFC 5280), Certificate Revocation (RFC 5280)
Original documentation:
The certificate is not yet valid: the notBefore date is after the current time. (source)
Original error message:
certificate is not yet valid (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CERT_NOT_YET_VALID in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case not-yet-valid (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CERT_NOT_YET_VALID in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_NOT_ACTIVATED
- Botan: CERT_NOT_YET_VALID
- Mbed TLS: MBEDTLS_X509_BADCERT_FUTURE
Redesigned documentation:
The certificate has expired (its validity period passed).
Explanation
Every certificate is issued for a specific time period (determined by notBefore
and notAfter
fields in the certificate). The current time seems to be past the notAfter
value. Therefore, the certificate is no longer valid.
Security perspective
The certificate is not valid anymore. That means the issuing Certificate Authority (CA) does guarantee the information in it is still correct. Moreover, expired certificates are removed from Certificate Revocation Lists (CRLs). That means the certificate might have been revoked in the past (e.g., because of a leaked private key), but we cannot check anymore. Thus, the server presenting this certificate may not be who it claims.
Next steps
First, ensure that the date, time and time zone are set correctly on your device to eliminate the possibility of local misconfiguration. If the time settings are correct, you should get a new valid certificate from the CA.
Original documentation:
The certificate has expired: that is the notAfter date is before the current time. (source)
Original error message:
certificate has expired (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CERT_HAS_EXPIRED in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case expired (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CERT_HAS_EXPIRED in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_EXPIRED
- Botan: CERT_HAS_EXPIRED
- Mbed TLS: MBEDTLS_X509_BADCERT_EXPIRED
Original documentation:
The CRL is not yet valid. (source)
Original error message:
CRL is not yet valid (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CRL_NOT_YET_VALID in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case crl_not_yet_valid (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CRL_NOT_YET_VALID in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Original documentation:
The CRL has expired. (source)
Original error message:
CRL has expired (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CRL_HAS_EXPIRED in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case crl_has_expired (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CRL_HAS_EXPIRED in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Original documentation:
The certificate has been revoked. (source)
Original error message:
certificate revoked (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CERT_REVOKED in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case cert_revoked (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CERT_REVOKED in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Trust or chain related errors
These errors occur when the trust chain to the root certificate is not built correctly or fails.
Relevant links: Certificate Paths (RFC 5280), Certificate Revocation Lists (RFC 5280), OCSP (RFC 2560)
Original documentation:
The issuer certificate of a looked up certificate could not be found. This normally means the list of trusted certificates is not complete. (source)
Original error message:
unable to get issuer certificate (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case trusted-only-intermediate (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: CERT_ISSUER_NOT_FOUND
- Mbed TLS: MBEDTLS_OK
Original documentation:
The issuer certificate could not be found: this occurs if the issuer certificate of an untrusted certificate cannot be found. (source)
Original error message:
unable to get local issuer certificate (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case bc-path-len-negative (see the generation script)
- Case chain-loop (see the generation script)
- Case duplicate-bc-extension (see the generation script)
- Case issuer-no-match-subject (see the generation script)
- Case issuer-pubkey-info-invalid-oid (see the generation script)
- Case issuer-pubkey-invalid-oid-and-signature (see the generation script)
- Case proxy-with-san (see the generation script)
- Case signature-algorithm-mismatch (see the generation script)
- Case unknown-root-cn (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS, GNUTLS_CERT_SIGNER_NOT_FOUND, GNUTLS_E_KEY_USAGE_VIOLATION, GNUTLS_E_CERTIFICATE_ERROR, GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE, GNUTLS_CERT_SIGNER_NOT_CA, GNUTLS_CERT_UNEXPECTED_OWNER
- Botan: UNKNOWN_CRITICAL_EXTENSION, TLS_EXCEPTION, DUPLICATE_CERT_EXTENSION, CERT_ISSUER_NOT_FOUND, VERIFIED
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_EXTENSIONS, MBEDTLS_X509_BADCERT_KEY_USAGE, MBEDTLS_X509_BADCERT_NOT_TRUSTED
Redesigned documentation:
The provided certificate is self-signed and it is not present in the list of trusted certificates.
Explanation
The provided certificate is self-signed (the issuer
and subject
fields are the same). Self-signed certificates usually serve as the root of trust in certificate chains belonging to the Certificate Authorities (CA). However, this certificate is at “zero depth,” i.e., it does not form a certificate chain. Neither is it present in the list of explicitly trusted CAs in your system.
Security perspective
Anyone can issue a self-signed certificate. Thus, the information contained in the certificate is not reliable. Therefore, the server presenting this certificate may not be who it claims.
Next steps
Try to find out if the self-signed certificate was expected at this place. Try to get a proper CA-signed certificated as self-signed certificates are not recommended even for testing purposes. If you are absolutely certain this is the certificate issued by a trustworthy party, you can mark it as trusted by your system. The provided certificate is self-signed and it cannot be found in the list of trusted certificates.
Original documentation:
The passed certificate is self-signed and the same certificate cannot be found in the list of trusted certificates. (source)
Original error message:
self signed certificate (source)
Original documentation:
The certificate chain length is greater than the supplied maximum depth. Unused. (source)
Original error message:
certificate chain too long (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CERT_CHAIN_TOO_LONG in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case openssl-length-exceeded (see the generation script)
Original documentation:
The CRL of a certificate could not be found. (source)
Original error message:
unable to get certificate CRL (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_UNABLE_TO_GET_CRL in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case unable_to_get_crl (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_UNABLE_TO_GET_CRL in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Original documentation:
CRL path validation error. (source)
Original error message:
CRL path validation error (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CRL_PATH_VALIDATION_ERROR in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case crl_path_validation_error (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CRL_PATH_VALIDATION_ERROR in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Basic extension errors
Errors related to extensions in general or to the BasicConstraints standard extension.
Relevant links: Certificate Extensions (RFC 5280), BasicConstraints Extension (RFC 5280)
Original documentation:
A CA certificate is invalid. Either it is not a CA or its extensions are not consistent with the supplied purpose. (source)
Original error message:
invalid CA certificate (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_INVALID_CA in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case issuer-ca-false (see the generation script)
- Case no-certsign-in-keyusage (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_INVALID_CA in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
Redesigned documentation:
The allowed length of the certification path was exceeded.
Explanation
Certification Authorities (CAs) can mandate the maximal length of the trusted certificate chains below their certificate. This is done using the pathLenConstraint
field in the basicConstraints
extension. If the certificate chain created during validation is longer than this limit, the validation fails due to the violated path length constraint. This limit includes only intermediate certificates – the first (CA) and the last (endpoint) certificates are excluded.
Security perspective
An exceeded certificate path length signifies that one of the sub-authorities issued a certificate it was not allowed. Therefore, the CA or one of the sub-authorities may not be trustworthy.
Next steps
Inspect the certificate chain to find the pathLenConstraint
in the basicConstraints
extension that was violated. Inform the (sub-)authority issuing this certificate about the violation lower in the certificate chain.
Original documentation:
The basicConstraints pathlength parameter has been exceeded. (source)
Original error message:
path length constraint exceeded (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_PATH_LENGTH_EXCEEDED in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case bc-path-len-exceeded (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_PATH_LENGTH_EXCEEDED in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE
- Botan: CERT_CHAIN_TOO_LONG
- Mbed TLS: MBEDTLS_X509_BADCERT_NOT_TRUSTED
Redesigned documentation:
A critical extension was not recognized or could not be processed.
Explanation
Certificate extensions can be used for extending certificates with additional information. Each extension is either marked as critical or non-critical (in the critical
field in the extension). If an extension is marked as critical, it must be processed. If the processing system cannot recognize or process a critical extension, it must reject the certificate.
Security perspective
Marking an extension as critical is a way for the certificate issuer to denote it is absolutely essential to process and understand it. If it is not processed, we may lack the necessary information and misuse the certificate. We may, for example, miss the intended purpose or key usage constraint. Inappropriateong usage circumvents the guarantees of the certificate authority, possibly putting our systems at risk.
Next steps
Inspect the certificate extensions marked with critical: true
to find the offender. Make sure that only the necessary extensions are marked as critical. Marking non-standard extensions as critical may cause problems in the general context.
Original documentation:
Unhandled critical extension. (source)
Original error message:
unhandled critical extension (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case unknown-critical-extension (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS
- Botan: UNKNOWN_CRITICAL_EXTENSION
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_EXTENSIONS
Original documentation:
Unhandled critical CRL extension. (source)
Original error message:
unhandled critical CRL extension (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case unhandled_critical_crl_extension (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Original documentation:
Invalid or inconsistent certificate extension. (source)
Original error message:
invalid or inconsistent certificate extension (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_INVALID_EXTENSION in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case empty-ip-addr-blocks (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_INVALID_EXTENSION in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS
- Botan: UNKNOWN_CRITICAL_EXTENSION
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_EXTENSIONS
Name related errors
Errors signalizing problems with either hostname verification, NameConstaints standard extension or IP Address Delegation extension.
Relevant links: NameConstaints extension (RFC 5280), IP Address Delegation extension (RFC 3779), Certificate Common Name (RFC 5280)
Redesigned documentation:
The requested hostname does not match the subject name in the certificate.
Explanation
Information about the certificate’s subject (an entity associated with the certificate’s public key) is held in the subjectAltName
extension or the subject
field. However, the hostname of the server you are connecting to does not match the subject information in the certificate.
Security perspective
You cannot verify the identity of the server to which you are connecting – you should not proceed. The server is either providing a wrong certificate (by being misconfigured) or is deliberately pretending to be a different entity to fool you. Sending or receiving data from unknown servers may put your systems at risk.
Next steps
Compare the server hostname with the subjectAltName
extension and the subject
field of the certificate. Common misconfigurations include not including server aliases in the certificate (e.g., www.example.com
for the server example.com
).
Original documentation:
Hostname mismatch. (source)
Original error message:
Hostname mismatch (source)
Original documentation:
IP address mismatch. (source)
Original error message:
IP address mismatch (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_IP_ADDRESS_MISMATCH in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case openssl-ip-mismatch (see the generation script)
Original documentation:
Permitted subtree violation. (source)
Original error message:
permitted subtree violation (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_PERMITTED_VIOLATION in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case nc-permitted-violation (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_PERMITTED_VIOLATION in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
Original documentation:
Excluded subtree violation. (source)
Original error message:
excluded subtree violation (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_EXCLUDED_VIOLATION in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case nc-excluded-violation (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_EXCLUDED_VIOLATION in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
Original documentation:
Name constraints minimum and maximum not supported. (source)
Original error message:
name constraints minimum and maximum not supported (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_SUBTREE_MINMAX in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case nc-maximum-present (see the generation script)
- Case nc-minimum-not-zero (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_SUBTREE_MINMAX in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
Original documentation:
Unsupported or invalid name syntax. (source)
Original error message:
unsupported or invalid name syntax (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_UNSUPPORTED_NAME_SYNTAX in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case san-empty-email (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_UNSUPPORTED_NAME_SYNTAX in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_CERTIFICATE_ERROR
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_EXTENSIONS
Original documentation:
RFC 3779 resource not subset of parent's resources. (source)
Original error message:
RFC 3779 resource not subset of parent's resources (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_UNNESTED_RESOURCE in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case ip-addr-blocks-no-subset (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_UNNESTED_RESOURCE in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS
- Botan: UNKNOWN_CRITICAL_EXTENSION
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_EXTENSIONS
Usage and policy errors
Errors related to standard extensions CertificatePolicies, KeyUsage and ExtendedKeyUsage.
Relevant links: KeyUsage extension (RFC5280), ExtendedKeyUsage extension (RFC5280), CertificatePolicies extension (RFC5280)
Redesigned documentation:
The certificate’s key is being used for a different purpose than allowed.
Explanation
Certificates can be used for various purposes. It might be desirable to use a certificate only for specific purposes. This is achieved by the keyUsage
extension, which defines nine possible usages of the certificate (e.g., digitalSignature
or dataEncipherment
). End entity certificates can also specify the extended key uses (in the extKeyUsage
extension).
Security perspective
Using the certificate for the purpose forbidden in the certificate may pose a risk to your data or systems. (For example, the key’s security may not be sufficient for the forbidden use).
Next steps
Check both the keyUsage
and extKeyUsage
to see if the listed purposes include the one for which you are attempting to use the certificate.
Original documentation:
The supplied certificate cannot be used for the specified purpose. (source)
Original error message:
unsupported certificate purpose (source)
Original documentation:
The root CA is marked to reject the specified purpose. (source)
Original error message:
certificate rejected (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CERT_REJECTED in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case openssl-purpose-reject-mark (see the generation script)
Original documentation:
No explicit policy. (source)
Original error message:
no explicit policy (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_NO_EXPLICIT_POLICY in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case openssl-no-explicit-policy (see the generation script)
Original documentation:
Key usage does not include CRL signing. (source)
Original error message:
key usage does not include CRL signing (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_KEYUSAGE_NO_CRL_SIGN in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case keyusage_no_crl_sign (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_KEYUSAGE_NO_CRL_SIGN in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Algorithm related errors
Various errors signalizing usage of invalid or deprecated algorithms.
Relevant links: Algorithm and Key Size Profile for PKI (RFC 7935), Suite B Profile for TLS (RFC 6460)
Original documentation:
EE certificate key too weak. (source)
Original error message:
EE certificate key too weak (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_EE_KEY_TOO_SMALL in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case end-entity-rsa-key-1024 (see the generation script)
- Case pubkey-info-invalid-oid (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_EE_KEY_TOO_SMALL in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_INSECURE_ALGORITHM, GNUTLS_E_CERTIFICATE_ERROR
- Botan: TLS_EXCEPTION, DECODING_ERROR
- Mbed TLS: MBEDTLS_X509_BADCERT_BAD_KEY
Original documentation:
CA certificate key too weak. (source)
Original error message:
CA certificate key too weak (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CA_KEY_TOO_SMALL in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case issuer-rsa-key-1024 (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CA_KEY_TOO_SMALL in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_INSECURE_ALGORITHM
- Botan: SIGNATURE_METHOD_TOO_WEAK
- Mbed TLS: MBEDTLS_X509_BADCERT_BAD_KEY
Original documentation:
CA signature digest algorithm too weak. (source)
Original error message:
CA signature digest algorithm too weak (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CA_MD_TOO_WEAK in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case issuer-hash-md5 (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CA_MD_TOO_WEAK in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_CERT_INSECURE_ALGORITHM
- Botan: UNTRUSTED_HASH
- Mbed TLS: MBEDTLS_X509_BADCERT_BAD_MD
(No detailed documentation provided by the library.)
Original error message:
cert info siganature and signature algorithm mismatch (source)
(No detailed documentation provided by the library.)
Original error message:
Cannot find certificate signature algorithm (source)
Formatting errors
These errors occur when a field of the certificate/CRL contains invalid values or is badly formatted.
Relevant links: Certificate Signature (RFC 5280), Certificate Time formatting (RFC 5280), Certificate Signature Algorithm (RFC 5280)
Original documentation:
The signature of the certificate is invalid. (source)
Original error message:
certificate signature failure (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CERT_SIGNATURE_FAILURE in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case invalid-signature (see the generation script)
- Case wrong-signature-algorithm (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CERT_SIGNATURE_FAILURE in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
Original documentation:
The signature of the certificate is invalid. (source)
Original error message:
CRL signature failure (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CRL_SIGNATURE_FAILURE in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case crl_signature_failure (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CRL_SIGNATURE_FAILURE in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Original documentation:
The certificate notBefore field contains an invalid time. (source)
Original error message:
format error in certificate's notBefore field (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case notbefore-field-invalid (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_ASN1_DER_ERROR
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_DATE
Original documentation:
The certificate notAfter field contains an invalid time. (source)
Original error message:
format error in certificate's notAfter field (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case notafter-field-invalid (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_ASN1_DER_ERROR
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_DATE
Original documentation:
The CRL lastUpdate field contains an invalid time. (source)
Original error message:
format error in CRL's lastUpdate field (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case error_in_crl_last_update_field (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Original documentation:
The CRL nextUpdate field contains an invalid time. (source)
Original error message:
format error in CRL's nextUpdate field (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case error_in_crl_next_update_field (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
Original documentation:
The certificate signature could not be decrypted. This means that the actual signature value could not be determined rather than it not matching the expected value, this is only meaningful for RSA keys. (source)
Original error message:
unable to decrypt certificate's signature (source)
Original documentation:
The CRL signature could not be decrypted: this means that the actual signature value could not be determined rather than it not matching the expected value. Unused. (source)
Original error message:
unable to decrypt CRL's signature (source)
Unused: As of now only defined in the code but not used. Also marked as unused in the docs.
(No detailed documentation provided by the library.)
Original error message:
Path length invalid for non-CA cert (source)
(No detailed documentation provided by the library.)
Original error message:
Path length given without key usage keyCertSign (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_PATHLEN_WITHOUT_KU_KEY_CERT_SIGN in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case bc-path-len-in-non-ca (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_PATHLEN_WITHOUT_KU_KEY_CERT_SIGN in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
(No detailed documentation provided by the library.)
Original error message:
Key usage keyCertSign invalid for non-CA cert (source)
(No detailed documentation provided by the library.)
Original error message:
Issuer name empty (source)
(No detailed documentation provided by the library.)
Original error message:
Subject name empty (source)
(No detailed documentation provided by the library.)
Original error message:
Missing Authority Key Identifier (source)
(No detailed documentation provided by the library.)
Original error message:
Missing Subject Key Identifier (source)
(No detailed documentation provided by the library.)
Original error message:
Empty Subject Alternative Name extension (source)
(No detailed documentation provided by the library.)
Original error message:
Subject empty and Subject Alt Name extension not critical (source)
(No detailed documentation provided by the library.)
Original error message:
Basic Constraints of CA cert not marked critical (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CA_BCONS_NOT_CRITICAL in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case bc-not-critical-ca (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CA_BCONS_NOT_CRITICAL in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
(No detailed documentation provided by the library.)
Original error message:
Authority Key Identifier marked critical (source)
(No detailed documentation provided by the library.)
Original error message:
Subject Key Identifier marked critical (source)
(No detailed documentation provided by the library.)
Original error message:
CA cert does not include key usage extension (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_CA_CERT_MISSING_KEY_USAGE in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case no-key-usage-in-ca (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_CA_CERT_MISSING_KEY_USAGE in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: VERIFIED
- Mbed TLS: MBEDTLS_OK
(No detailed documentation provided by the library.)
Original error message:
Using cert extension requires at least X509v3 (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case v1-cert-with-extensions (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_CERTIFICATE_ERROR
- Botan: TLS_EXCEPTION
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_FORMAT
(No detailed documentation provided by the library.)
Original error message:
Certificate public key has explicit ECC parameters (source)
Uncategorized errors
These errors are not yet categorized, deprecated or not used at all.
Original documentation:
Proxy certificates not allowed, please use -allow_proxy_certs. (source)
Original error message:
proxy certificates not allowed, please set the appropriate flag (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case openssl-proxy-not-allowed (see the generation script)
Original documentation:
Invalid non-CA certificate has CA markings. (source)
Original error message:
invalid non-CA certificate (has CA markings) (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_INVALID_NON_CA in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case proxy-ca (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_INVALID_NON_CA in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
- GnuTLS: GNUTLS_E_SUCCESS
- Botan: UNKNOWN_CRITICAL_EXTENSION
- Mbed TLS: MBEDTLS_ERR_X509_INVALID_EXTENSIONS
Original documentation:
Proxy path length constraint exceeded. (source)
Original error message:
proxy path length constraint exceeded (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case proxy-length-exceeded (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
Original documentation:
Proxy certificate name violation. (source)
Original error message:
proxy subject name violation (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case proxy-name-no-match-issuer (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
Original documentation:
The operation was successful. (source)
Original error message:
ok (source)
Example certificates
Below you can download one or more example malformed certificates causing X509_V_OK in OpenSSL. If you are interested in generating these certificates yourself, see the corresponding generating script for each case on the project Github.
- Case nc-empty (see the generation script)
- Case negative-serial-number (see the generation script)
- Case san-null-byte-in-email (see the generation script)
- Case v4-cert (see the generation script)
- Case valid-proxy (see the generation script)
- Case valid-with-aia (see the generation script)
- Case valid-with-crldp (see the generation script)
- Case valid (see the generation script)
Corresponding errors
What validation errors do other libraries give for certificates causing X509_V_OK in OpenSSL? Below, you can see the basic overview based on the example certificates from the previous section. (The list may be incomplete.)
About the project
The project is developed at the Centre for Research on Cryptography and Security (CRoCS) at Masaryk University, Brno, Czech Republic by Martin Ukrop, Pavol Žáčik, Marián Svitek, Eric Valčík with the help of Michaela Balážová and Matěj Grabovský. For more details, see the ReadMe file in the project repository on GitHub.
The authors are grateful for the financial support by Red Hat Czech and Kiwi.com.