Quick recap: certificates and keys
- Server certificates — used by servers to identify themselves (commonly
*.crtor*.pem). - Root certificates — the CA’s certificate and private key used to sign other certificates (
ca.crtandca.key). - Client certificates — used by clients to authenticate to servers (commonly
*.crtpaired with a*.key).
Use consistent filenames — for example,
api-server.crt and api-server.key — to reduce confusion. Filenames shown in this lesson are illustrative; your cluster may use different names.Keep private keys (
*.key, or any filename containing key) secure and access-controlled. If a private key is leaked, certificates signed by that key must be revoked and reissued.Why TLS matters in Kubernetes
Kubernetes nodes and components exchange sensitive data and control commands. Every connection between:- control plane components and worker nodes,
- components and etcd,
- administrators (kubectl/REST clients) and the API server,
- Servers must present server certificates so clients can verify identity.
- Clients present client certificates when the server requires client authentication.

Main server and client components
Below is a concise mapping of common Kubernetes components to the certificate files they typically require.
Notes:
- Some components act as both servers and clients. For example, the
kube-apiserveris a server for clients likekubectl, and it is a client when it connects toetcdor kubelets. - Components may reuse a single certificate for both serving and client authentication, or they may use separate certificate pairs depending on security policies.
Examples of server-as-client interactions
- kube-apiserver → etcd: The API server connects to etcd. It may reuse its serving certificate (
api-server.crt/api-server.key) or use a distinct client certificate issued to the API server for authentication to etcd. - kube-apiserver → kubelets: The API server connects to kubelets on worker nodes. These connections can use the kube-apiserver’s serving certificate or a separate client certificate.
Organizing certificates
Group certificates by purpose to simplify management and rotation:- Client certificate set: certificates used by users and control-plane components to authenticate to the API server (e.g.
admin.crt,scheduler.crt,kube-proxy.crt). - Server certificate set: certificates used by services exposing HTTPS endpoints (e.g.
api-server.crt,etcdserver.crt,kubelet.crt). - CA certificate(s): at least one CA is required to sign cluster certificates. You can use one CA for the whole cluster or multiple CAs (for example, a separate etcd CA for additional isolation).
ca.crt and ca.key.

What’s next
Now that you understand which certificates are required and how to organize them, the next step is generating a CA and creating certificate signing requests (CSRs) for each component, then signing those CSRs with the CA to produce the required*.crt and *.key pairs. Typical workflows include using openssl or cfssl to generate keys/CSRs and a CA to sign them, or leveraging automated tooling (e.g., cert-manager) for issuance and rotation.
Links and references
- Kubernetes TLS and certificate management
- Kubernetes documentation — authentication
- OpenSSL documentation