


- Certificate resource: a request that declares the DNS names (subject / SANs), the Issuer to use, and the target Secret name.
- Issuer / ClusterIssuer: the authority that fulfills the request by obtaining or issuing the certificate.
- Secret: where the resulting TLS material is stored (commonly
kubernetes.io/tlswithtls.crtandtls.key).
- DNS name(s) the certificate should cover.
- Which Issuer or ClusterIssuer should obtain the certificate.
- Which Kubernetes Secret should hold the TLS data.
tls.crt and tls.key:

Secret = output (contains
tls.crt and tls.key).
Issuer vs ClusterIssuer

- Controller(s) that reconcile Certificate, Issuer, and other cert-manager CRs.
- Validating webhook that validates cert-manager resources against the API.
- CA injector (cainjector) which injects CA bundles where needed (for example, into webhook configurations).
- Verify the Certificate status:
kubectl describe certificate example-com-tls -n default - Confirm the Secret exists and includes
tls.crtandtls.key:kubectl get secret example-com-tls-secret -n default -o yaml - Troubleshoot with CertificateRequest objects and cert-manager controller logs when issuance fails.
cert-manager stores TLS material in a Secret of type
kubernetes.io/tls with keys tls.crt (certificate chain) and tls.key (private key). Applications should reference the Secret name so cert-manager can update the data in-place during renewal. See cert-manager documentation and Kubernetes TLS Secret docs: https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets.- cert-manager: https://cert-manager.io/
- Let’s Encrypt: https://letsencrypt.org
- Kubernetes TLS Secrets: https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets