An intermediate certificate authority (CA) is certified by a root CA or another intermediate CA. It issues end-entity certificates, such as a certificate for github.com, while keeping root certificates out of direct issuance. section 8.2.1 section 8.3
Trust is established by checking the end-entity certificate, then following its issuer to the intermediate CA and finally to a trusted root in the operating system, browser, or runtime trust store. section 8.4 section 8.2.1
Diagnosing a missing intermediate
Running openssl verify github-cert.pem can produce “unable to get local issuer certificate.” Supplying the intermediate certificate with -CAfile allows OpenSSL to build the chain: github.com at depth 0, the intermediate CA at depth 1, and DigiCert Global Root CA at depth 2.
