Extension | ('NIST', '') | ('NIST', 'critical') 1 | ('NIST', 'condition') | ('BSI', '') 2 | ('BSI', 'critical') | ('BSI', 'condition') | ('ANSSI', '') | ('ANSSI', 'condition') | ('MOZILLA', '') |
---|---|---|---|---|---|---|---|---|---|
authorityKeyIdentifier | recommended | CHECK_AKI 3 | <Not mentioned> | must 4 | <Not mentioned> | ||||
subjectKeyIdentifier 5 | recommended | NOTE_ALWAYS The guidelines state Same as in Public-Key Cryptography Standards [PKCS 10] request or calculated by the issuing CA . The tool can not verify this condition since this specific check can only be performed by monitoring the endpoint during the certificate issuing phase 6 |
<Not mentioned> | <Not mentioned> | |||||
keyUsage 7 | recommended | yes | (VALUE CertificateExtensions Digital Signature in keyUsage OR VALUE CertificateExtensions Key Agreement in keyUsage) and NOTE_FALSE Invalid keyUsage, allowed key usages are digital signature if using RSA certificate and key agreement if using ECDH or DH certificate 8 | must | yes | must 9 | <Not mentioned> | ||
extendedKeyUsage 10 | must 11 | NOTE_FALSE Issue detected: {reason} within certificate #{cert} AND VALUE CertificateExtensions TLS Web Server Authentication in extendedKeyUsage 12 | recommended | must 13 | <Not mentioned> | ||||
extendedKeyUsage 14 | must not | (NOTE_TRUE Issue detected: {reason} within certificate #{cert} AND VALUE CertificateExtensions Any Extended Key Usage in extendedKeyUsage) OR CHECK_SAME_KEYUSAGE 15 | <Not mentioned> | <Not mentioned> | |||||
Certificate Policies | optional | <Not mentioned> | <Not mentioned> | <Not mentioned> | |||||
subjectAltName 16 | must 17 | VALUE CertificateExtensions DNS in subjectAltName OR VALUE CertificateExtensions IP Address in subjectAltName 18 | must not | NOTE_TRUE Issue detected: {reason} within certificate #{cert} and VALUE CertificateExtensions * in subjectAltName 19 | must 20 | <Not mentioned> | |||
authorityInfoAccess 21 | must 22 | VALUE CertificateExtensions OCSP - URI in authorityInfoAccess and NOTE_FALSE the authorityInfoAccess extension must have a field CA Issuers containing HTTP URL for certificates issued to issuing CA 23 | must | THIS or CertificateExtensions CRL Distribution Points | must | THIS or CertificateExtensions CRL Distribution Points | <Not mentioned> | ||
authorityInfoAccess | must 24 | VALUE CertificateExtensions CA ISSUERS - URI in authorityInfoAccess and NOTE_FALSE the authorityInfoAccess extension must have the Online Certificate Status Protocol and it must contain HTTP URL for the issuing CA OCSP responder 25 | <Not mentioned> | ||||||
crlDistributionPoints 26 | optional | VALUE CertificateExtensions IP in crlDistributionPoints OR VALUE CertificateExtensions URI in crlDistributionPoints 27 | must | THIS or CertificateExtensions Authority Information Access | must | THIS or CertificateExtensions Authority Information Access | <Not mentioned> | ||
crlDistributionPoints | must not | NOTE_TRUE Issue detected: {reason} within certificate #{cert} AND (VALUE CertificateExtensions Relative Name in crlDistributionPoints OR VALUE CertificateExtensions CRL Issuer in crlDistributionPoints OR VALUE CertificateExtensions Reasons in crlDistributionPoints) AND DISABLE_IF False 28 | <Not mentioned> | ||||||
ct_precert_scts 29 | optional 30 | <Not mentioned> | <Not mentioned> | ||||||
OCSP must staple extension 31 | optional 32 | <Not mentioned> | <Not mentioned> |
Footnotes
-
Each extension in a certificate is designated as either critical or non-critical. A certificate-using system MUST reject the certificate if it encounters a critical extension it does not recognize or a critical extension that contains information that it cannot process. A non-critical extension MAY be ignored if it is not recognized, but MUST be processed if it is recognized. The following sections present recommended extensions used within Internet certificates and stand
https://www.rfc-editor.org/rfc/rfc5280 section 4.2 ↩
-
BSI TR-03116-4 ↩
-
Same as subject key identifier in issuing CA certificate; Prohibited: Issuer DN, Serial Number tuple ↩
-
R32 ↩
-
Subject Key Identifier (SKI) ↩
-
Same as in Public-Key Cryptography Standards (PKCS) 10 request or calculated by the issuing CA ↩
-
Key Usage ↩
-
RSA, ECDSA, or DSA signature certificate: digital signature; ECDH or DH certificate: key agreement ↩
-
R27 ↩
-
Extended Key Usage ↩
-
server ↩
-
id-kp-serverAuth {1 3 6 1 5 5 7 3 1} http://oid-info.com/get/1.3.6.1.5.5.7.3.1 ↩
-
R28 ↩
-
Extended Key Usage ↩
-
the keyAgreement and keyEncipherments are considered mutually exclusive as show in section 5.4.3 of https://www.etsi.org/deliver/etsi_ts/102200_102299/102280/01.01.01_60/ts_102280v010101p.pdf ↩
-
Subject Alternative Name (SAN) ↩
-
Required. Multiple SANs are permitted, e.g., for load balanced environments. ↩
-
DNS host name, or IP address if there is no DNS name assigned. Other name forms may be included, if appropriate. ↩
-
use wildcards in CN ↩
-
R29 ↩
-
Authority Information Access ↩
-
Required. Multiple SANs are permitted, e.g., for load balanced environments. ↩
-
field id-ad-caIssuers ↩
-
Required. Multiple SANs are permitted, e.g., for load balanced environments. ↩
-
field id-ad-caIssuers ↩
-
CRL Distribution Points ↩
-
HTTP value in distributionPoint field pointing to a full and complete CRL
We don't check if the CRL is full and complete. We only check if the value in the cert is of type IP or URI ↩
-
A CRL is indicated by a DistributionPoint ::= SEQUENCE. This SEQUENCE can contain three items: distributionPoint: DistributionPointName reasons: ReasonFlags cRLIssuer: GeneralNames.
The DistributionPointName type is a CHOICE with two options: fullName nameRelativeToCRLIssuer
A valid distributionPoint must not have the "reasons" and "cRLIssuer" fields and the distributionPoint can not be of type nameRelativeToCRLIssuer ↩
-
Signed Certificate Timestamps List ↩
-
Optional. This extension contains a sequence of Signed Certificate Timestamps, which provide evidence that the certificate has been submitted to Certificate Transparency logs. ↩
-
TLS Certificate Status Request ↩
-
Optional. This extension (sometimes referred to as the “must staple” extension) may be present to indicate to clients that the server supports OCSP stapling and will provide a stapled OCSP response when one is requested. ↩