Chapter 22
A CA of your own: private two-tier PKI
A private CA lets you issue certificates for internal systems under your own rules, built safely as an offline root plus an online issuing CA with clear policies and templates.
Topic
Many organisations run their own CA for internal servers, users, devices and services. Its certificates are trusted only by machines you configure to trust its root.
This hub covers a two-tier design with an offline root, guarding CA keys with HSMs and key ceremonies, distributing your root safely, mutual TLS and identities for machines.
Plain words first, then the real mechanism, what it looks like at work and why it matters.
Chapter 22
A private CA lets you issue certificates for internal systems under your own rules, built safely as an offline root plus an online issuing CA with clear policies and templates.
Chapter 21
A CA is only as trustworthy as its private keys, so they live in certified hardware, are created in witnessed ceremonies and are used only under multi-person control.
Chapter 12
Every client trusts only the root certificates in its own trust store, so a certificate is accepted only if its chain ends at one of them; being self-signed earns nothing.
Chapter 23
In mutual TLS the client also proves who it is, with a certificate and a signature from its private key, so both ends are authenticated before any data flows.
Chapter 25
A device certificate, installed at the factory with its private key locked in secure hardware, lets a machine prove what it is and who made it, for its whole life.
Step-by-step, with real commands and a way to check it worked.
You will have a lab CA running smallstep's step-ca that issues and renews 24-hour certificates, speaks ACME, and refuses names outside your lab domain.
You will have a two-tier test CA built with openssl ca: a root, a name-constrained issuing CA, server and client certificates, a revocation and working CRLs.
Your Windows computer, or a whole fleet, trusts your organisation's private root CA, and you know which apps still need their own setting.
Your Linux server, desktop or container image trusts your organisation's private root CA system-wide, and you know which programs keep their own list.
Your Mac, or every managed Mac, trusts your organisation's private root CA in the System keychain, and you know which apps need their own setting.
Your Java program trusts your private root CA, either through the JDK's cacerts or through its own trust store, and you have proved it with a real connection.
You will have an nginx endpoint that accepts only clients holding a certificate from your own client CA, lets in only the clients you name, and is tested with curl.
You will have OpenSSH host and user certificates signed by your own CAs, so clients trust servers without first-use prompts and servers trust short-lived user certificates.
The exact messages tools and browsers print, with likely causes and safe fixes.
They run in your browser. Nothing you paste is sent anywhere.
Tool
Paste a chain and see which link is missing, expired or out of order.
Tool
Check a certificate signing request before you send it to a CA.
Tool
Paste a PEM certificate and read every field in plain words.
Short lessons of about nine minutes each, with check questions.
Every term in plain words, linked to its full entry.