cert-manager Knowledge
Kip Landergren
(Updated: )
My cert-manager knowledge base explaining how to manage TLS certificates in a kubernetes cluster.
Contents
Overview
cert-manager
is kubernetes add-on for managing TLS certificates. It uses Custom Resource Definitions to define kubernetes objects that together coordinate and provide the certificate management functionality.
A minimal configuration would involve a configured Issuer object and a configured Certificate object. When applied, an Order object will be generated with the Issuer that when ready, will create a Secret conforming to the certificate specification.
Core Idea
cert-manager
extends Kubernetes via Custom Resource Definitions to construct a system that manages TLS certificates—including ordering and renewal—with major Certificate Authorities like Let’s Encrypt.
Key Concepts
Public Key Cryptography
The underlying concepts behind why TLS certificates are used and what role Certificate Authorities play on the web.
Automated Certificate Management
Let’s Encrypt was created in part to help secure the web by automating the issuing and renewal of valid TLS certificates. The ACME (Automatic Certificate Management Environment) protocol allows for various “challenges” to be solved to prove ownership and validity of a domain.
cert-manager
provides a convenient mechanism and interface for interacting with Let’s Encrypt, and other Certificate Authorities, to manage TLS certificates in a kubernetes cluster.
Custom Resource Definitions
Mechanism of extending Kubernetes functionality. Official documentation has more information.
Components
ClusterIssuers / Issuers
An Issuer
is a namespaced resource representing a Certificate Authority who can provide x.509 certificates. It may act as a proxy to Let’s Encrypt staging or production environments.
A ClusterIssuer is simply an Issuer accessible from any namespace.
Certificates
A Certificate
defines a desired x.509 certificate.