How-to guides

How-to guides

Step-by-step guides for the jobs people actually do with certificates: check, create, convert, trust, install and automate. Real commands, real output, and never "turn off verification".

35 of 35 guides published in this early edition.

Each guide takes one real task from start to finish: inspecting a certificate, creating a CSR, converting a PFX, trusting a private root, installing a certificate or automating renewal. We run the commands for real wherever we can and show their real output, and every guide ends with a check that proves it worked, the problems you are most likely to meet, and the handbook chapter that explains why it works. None of them asks you to switch certificate checking off or to paste a private key into a website.

Inspect and check

Read a certificate, check the chain a server sends, and prove a key matches.

How to inspect a certificate with OpenSSL

You will have read a certificate file or a server's certificate with OpenSSL and found its names, dates, issuer, key and fingerprint.

  • Linux
  • macOS
  • Windows
  • Java

Level: Beginner

Create keys and CSRs

Make a key pair and a certificate signing request on any platform.

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

Level: Practitioner

Convert file formats

Move certificates and keys between PEM, DER, PFX and Java keystores.

How to convert PFX (PKCS #12) to PEM and back

You will have split a PFX into PEM files for the certificate, the chain and the key, or packed PEM files into a PFX that Windows and Java can import.

  • Linux
  • macOS
  • Windows
  • IIS

Level: Practitioner

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

Level: Beginner

How to convert a Java keystore (JKS) to PKCS #12

You will have moved every key and trusted certificate from a JKS keystore into a standard PKCS #12 file that Java, OpenSSL and Windows can read, and updated your settings.

  • Java

Level: Practitioner

Trust a CA

Make computers, languages and tools trust a private or corporate CA, safely.

How to trust a private root CA on Windows

Your Windows computer, or a whole fleet, trusts your organisation's private root CA, and you know which apps still need their own setting.

  • Windows

Level: Practitioner

How to trust a private root CA on macOS

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.

  • macOS

Level: Practitioner

How to trust a private root CA on Linux

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.

  • Linux
  • Docker

Level: Practitioner

How to add a CA to a Java trust store (cacerts)

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.

  • Java
  • Linux
  • Windows
  • macOS

Level: Practitioner

Install on a server

Put a certificate and its chain on nginx, Apache, IIS and Java servers.

How to build the full chain file your server needs

You will have one PEM file with your certificate followed by its intermediates in the right order, verified offline and proven to work with a strict client.

  • Linux
  • nginx
  • Apache
  • Kubernetes

Level: Practitioner

How to install a certificate in nginx

nginx serves your certificate and its full chain on port 443, with a key that matches, and you have proved it from the outside with OpenSSL and curl.

  • Linux
  • nginx

Level: Practitioner

How to install a certificate in IIS

IIS serves your certificate with its private key and intermediate on an HTTPS binding with SNI, and renewed certificates get rebound instead of silently expiring.

  • Windows
  • IIS

Level: Practitioner

Automate renewal

Get and renew certificates without a human: certbot, cert-manager, win-acme.

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

Level: Practitioner

Operate and monitor

Watch expiry and Certificate Transparency, and get ready for short lifetimes.

Harden and secure

TLS settings, CAA records and mutual TLS done properly.

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

Level: Practitioner

How to set up mutual TLS (nginx and curl)

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.

  • nginx
  • Linux
  • Windows

Level: Practitioner

Labs and advanced

Private CAs, code signing, SSH certificates and post-quantum TLS.

How to build a test CA with OpenSSL (lab only)

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.

  • Linux
  • macOS
  • Windows

Level: Practitioner

How to sign code with signtool and cosign

You will sign and timestamp a Windows program with SignTool, sign a release file with Sigstore cosign, and verify both, including who signed and when.

  • Windows
  • Linux
  • macOS

Level: Practitioner

How to use SSH certificates instead of known_hosts

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.

  • Linux
  • macOS
  • Windows

Level: Practitioner

How to test post-quantum hybrid TLS

You will know whether your servers and network negotiate the X25519MLKEM768 hybrid key exchange, and how to read, force and troubleshoot it with OpenSSL 3.5.

  • Linux
  • macOS
  • Windows

Level: Expert

Last reviewed