Topic

Certificates

A certificate is a signed statement that binds a name, such as a website's domain, to a public key. A certificate authority (CA) signs it after checking that the requester controls the name.

This hub covers what is inside an X.509 certificate, the names and jobs it allows, how to make a key and a certificate signing request (CSR), how domain validation works, and the file formats you will meet. Certificates do not encrypt anything: they let others check whose public key they are using.

Understand it: handbook chapters

Plain words first, then the real mechanism, what it looks like at work and why it matters.

Chapter 8

Anatomy of an X.509 certificate

An X.509 certificate is a public, signed record that ties one public key to names for a fixed period, and you can read every field with openssl.

  • Developer
  • IT ops
  • Beginner

Chapter 11

Proving you own the name: DV, OV, EV and CAA

Before issuing, a CA checks that you control each name, using a file, a DNS record or a TLS response, and reads CAA records; OV and EV check the organisation.

  • IT ops
  • Developer
  • Leader

Chapter 3

Key pairs: public and private keys

A key pair is two keys: a public key anyone may have and a private key only you hold, so strangers can encrypt to you without sharing a secret first.

  • Beginner
  • Developer
  • IT ops

Chapter 7

Whose key is it? Binding identity to keys

Encryption and signatures only help if you use the right person's public key, so something you already trust must vouch that a key belongs to a name.

  • Beginner
  • Developer
  • IT ops

Appendix

File formats: PEM, DER, PKCS #12 and friends

The formats are wrappings of the same data: DER is binary, PEM is DER in Base64, PKCS #12 bundles a key with its certificates, and PKCS #7 carries certificates only.

  • Developer
  • IT ops
  • Expert

Do it: how-to guides

Step-by-step, with real commands and a way to check it worked.

How to create a CSR with Java keytool

You will have a key pair in a PKCS #12 keystore, a CSR whose SAN list really reaches the CA, and the signed certificate chain installed under the same alias.

  • Java

How to convert between DER and PEM

You will have identified whether a file is DER or PEM and converted certificates, keys, CSRs, CRLs and bundles between the two, with proof that nothing changed.

  • Linux
  • macOS
  • Windows
  • Java

How to set CAA records for your domain

You will have DNS CAA records that let only the CAs you really use issue certificates for your names, with separate wildcard rules and an address for violation reports.

  • Linux
  • macOS
  • Windows

How to get a wildcard certificate with DNS-01

You will have a publicly trusted certificate for *.example.com and example.com, issued through the ACME DNS-01 challenge with a narrowly scoped DNS key, and renewing by itself.

  • Linux
  • Windows

Fix it: error pages

The exact messages tools and browsers print, with likely causes and safe fixes.

Check yours: browser tools

They run in your browser. Nothing you paste is sent anywhere.

Tool

CSR decoder

Check a certificate signing request before you send it to a CA.

Tool

Hostname matcher

Test whether a name matches a certificate's SANs and wildcards.

The big picture: crash course

Short lessons of about nine minutes each, with check questions.

Look it up: glossary terms

Every term in plain words, linked to its full entry.