liveBook · Manning

Root certificate

As explained in Software Security for Developers

A root certificate authority is a self-signed certificate authority whose trust anchor is typically preinstalled in an operating system or other trust store.

A root certificate is a self-signed certificate for a trusted certificate authority (CA). Its public key anchors certificate validation, and operating systems, browsers, or language runtimes usually install it in a trust store. section 8.2.1 section 8.3

Trust is established by following a chain from an end-entity certificate, such as github.com, through an intermediate CA to a trusted root. The root is normally not used directly to issue every server certificate; intermediates provide a safer hierarchy. section 8.2.1 section 8.4

When verification cannot find the root

Running `openssl verify github-cert.pem` can produce `unable to get local issuer certificate`. Supplying the appropriate CA material allows OpenSSL to build the chain and report `github-cert.pem: OK`; the displayed chain ends at DigiCert Global Root CA. section 8.2.1

openssl genpkey -algorithm RSA -outform PEM -out ca/ca_private_key.pem

Generate the private key for a local development CA with OpenSSL before creating its self-signed root certificate. section 9.2.1

openssl req -x509 -new -key ca/ca_private_key.pem 
-days 3650 -out ca/ca_cert.pem -subj "/CN=local-dev CA"

Create a ten-year self-signed local-development CA certificate named local-dev CA. section 9.2.1

Inspect a generated root certificate before trusting or using it. Check that Subject and Issuer match, confirm its validity period and public key, and verify CA extensions such as Basic Constraints: CA:TRUE and suitable key usage. section 9.2.1

How Software Security for Developers covers it

How deep it goes
Explains self-signing, trust stores, intermediates, chain verification, and local creation, but stops short of cryptographic proofs.
Examples
Uses github.com verification, DigiCert chain inspection, Ubuntu trust-store listings, and a local-dev CA created with OpenSSL.
What it assumes
Assumes basic certificate familiarity while defining certificate authorities, intermediates, trust stores, and chain verification in practical terms.
What you can do after
Diagnose certificate-chain failures with OpenSSL and create or inspect a self-signed root certificate for local development.
How it connects
Connects root certificates with certificate authorities, intermediate certificates, end-entity certificates, trust stores, and certificate chains.

Also explained in

Compare how 3 books explain root certificate →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Software Security for Developers. The section links point to the parts of the book it draws on.