An end entity is the final subject named by a certificate, such as a website, service, organization, or individual. Unlike a certificate authority, it does not issue certificates to another authority. Its certificate binds the subject’s identity and public key, with the issuer and validity period providing essential verification context. section 8.3 section 8.4
Place the certificate at the bottom of the trust hierarchy:
- The end-entity certificate identifies the service being contacted, such as github.com. section 8.2.1
- An intermediate CA issues the end-entity certificate. section 8.3
- A trusted root CA anchors verification through the operating system or browser trust store. section 8.2.1
GitHub’s certificate chain
OpenSSL verifies github.com by checking its end-entity certificate, then the DigiCert intermediate certificate, and finally the trusted DigiCert Global Root CA. A missing issuer can make verification fail. section 8.2.1
Listing 8.9 The certificate chain
github-cert.pem: OK #1 Chain: depth=0: C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = github.com (untrusted) #2 depth=1: C = US, O = DigiCert Inc, CN = DigiCert TLS Hybrid ECC SHA384 2020 CA1 #3 depth=2: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA #4
Inspect the certificate chain from the end entity at depth 0 to the trusted root at depth 2. section 8.2.1
