Skip to content

Generowanie certyfikatu dla kube-apiserver

Konieczne w certyfikacie jest uwzględnienie wszystkich ścieżek wykorzystywanych do komunikacji z klastrem (typu kubernetes, kubernetes.default, itd.) oraz adresów IP komponentu kube-apiserver (np. poda).

Kroki przy generowaniu certyfikatu

1. Generujemy klucz prywatny

openssl genrsa -out apiserver.key 2048

2. Generujemy CSR (Certificate Signing Request), do tego wykorzystujemy config file openssl.conf:

openssl req -new -key apiserver.key -subj \
"/CN=kube-apiserver" \
-out apiserver.csr \
-config openssl.conf

gdzie przykładowy openssl.conf:

[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
...omitted...
[alt_names]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster.local
IP.1 = 10.111.0.1
IP.2 = 192.168.10.1

3. Wygenerowanie certyfikatu X.509 ważnego przez 1000 dni:

openssl x509 -req -in apiserver.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out apiserver.crt -extensions v3_req \
-extfile openssl.conf -days 1000