Practice Test - View Certificates
cat /etc/kubernetes/manifest/kube-apiserver.yaml
spec:
containers:
- command:
- kube-apiserver
- --advertise-address=172.17.0.31
- --allow-privileged=true
- --authorization-mode=Node,RBAC
- --client-ca-file=/etc/kubernetes/pki/ca.crt
- --enable-admission-plugins=NodeRestriction
- --enable-bootstrap-token-auth=true
- --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt
- --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt
- --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key
- --etcd-servers=https://127.0.0.1:2379
- --insecure-port=0
- --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt
- --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt
- --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key
- --requestheader-allowed-names=front-proxy-client
- --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
- --requestheader-extra-headers-prefix=X-Remote-Extra-
- --requestheader-group-headers=X-Remote-Group
- --requestheader-username-headers=X-Remote-User
- --secure-port=6443
- --service-account-key-file=/etc/kubernetes/pki/sa.pub
- --service-cluster-ip-range=10.96.0.0/12
- --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
- --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
ㅁ Identify the certificate file used for the kube-api-server
[/etc/kubernetes/pki/apiserver.crt]
[/tmp/kube-apiserver.crt]
[/etc/apiserver.crt]
[/etc/kubernetes/pki/kube-apiserver.crt]
[/etc/apiserver.key]
ㅁ Identify the Certificate file used to authenticate kube-apiserver as a client to ETCD Server
[/etc/kubernetes/pki/apiserver-etcd-client.key]
[/etc/kubernetes/pki/apiserver-kubelet-client.crt]
[/etc/kubernetes/pki/apiserver-etcd.crt]
[/etc/kubernetes/pki/apiserver-etcd-client.crt]
[/etc/kubernetes/pki/apiserver.crt]
ㅁ Identify the key used to authenticate kubeapi-server to the kubelet server
[/etc/kubernetes/pki/apiserver-kubelet-client.key]
[/etc/kubernetes/pki/front-proxy-client.key]
[/etc/kubernetes/pki/apiserver-etcd-client.key]
[/etc/kubernetes/pki/apiserver-kubelet-client.crt]
[/etc/kubernetes/pki/apiserver.key]
cat /etc/kubernetes/manifest/etcd.yaml
spec:
containers:
- command:
- etcd
- --advertise-client-urls=https://172.17.0.31:2379
- --cert-file=/etc/kubernetes/pki/etcd/server.crt
- --client-cert-auth=true
- --data-dir=/var/lib/etcd
- --initial-advertise-peer-urls=https://172.17.0.31:2380
- --initial-cluster=controlplane=https://172.17.0.31:2380
- --key-file=/etc/kubernetes/pki/etcd/server.key
- --listen-client-urls=https://127.0.0.1:2379,https://172.17.0.31:2379
- --listen-metrics-urls=http://127.0.0.1:2381
- --listen-peer-urls=https://172.17.0.31:2380
- --name=controlplane
- --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt
- --peer-client-cert-auth=true
- --peer-key-file=/etc/kubernetes/pki/etcd/peer.key
- --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
- --snapshot-count=10000
- --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
ㅁ Identify the ETCD Server Certificate used to host ETCD server
[/etc/kubernetes/pki/apiserver-etcd-client.crt]
[/etc/kubernetes/pki/etcd/ca.crt]
[/etc/kubernetes/pki/apiserver.crt]
[/etc/kubernetes/pki/etcd/server.crt]
ㅁ Identify the ETCD Server CA Root Certificate used to serve ETCD Server
ETCD can have its own CA. So this may be a different CA certificate than the one used by kube-api server
[/etc/kubernetes/pki/ca.crt]
[/etc/kubernetes/pki/etcd/server.crt]
[/etc/kubernetes/pki/apiserver-kubelet-client.crt]
[/etc/kubernetes/pki/etcd/ca.crt]
$ openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 7180269681194863858 (0x63a5713b7b208cf2)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN = kubernetes
Validity
Not Before: Mar 29 00:01:49 2021 GMT
Not After : Mar 29 00:01:49 2022 GMT
Subject: CN = kube-apiserver
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:d9:19:9f:81:9e:42:dd:0e:1f:56:83:02:d3:6c:
f1:43:71:10:03:ea:8d:8d:9b:7d:8e:1f:a1:11:fb:
31:6b:38:8e:f3:27:0a:de:7e:a2:2b:88:b1:70:aa:
f5:c0:66:ac:23:27:20:28:3b:6e:ed:e9:40:83:31:
f5:73:3a:bf:c2:8f:6a:a6:8e:67:6a:b0:2f:b8:89:
42:40:52:28:7b:3b:54:74:7f:1a:9c:d0:79:ec:ef:
2f:52:c7:0d:98:60:5d:73:47:0b:1f:40:71:fa:0e:
de:6c:83:8a:87:22:0c:ca:b6:f1:5f:0d:6b:46:b6:
1a:a0:43:cd:0b:3e:28:0f:f6:db:5b:b0:46:ef:5a:
a6:2c:c1:e6:9c:f1:3d:7d:64:d7:ce:f4:ef:0c:59:
31:8f:4f:14:83:4b:cd:30:6f:c3:a6:d8:ba:57:e7:
35:f1:0d:28:bf:32:d2:f8:52:33:5b:ec:93:31:2f:
87:70:43:b5:c5:44:54:24:e5:b4:e3:18:2c:f8:25:
ef:73:05:28:5c:62:42:ae:c8:66:3d:e1:17:6c:9b:
5a:b3:67:ff:60:2d:34:06:5a:23:ec:3e:b5:68:f8:
9d:df:76:cd:f0:96:80:46:a7:fe:08:35:e8:20:79:
f8:83:03:5d:8a:8e:5d:09:58:d1:8f:d2:d0:92:b3:
d6:99
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Alternative Name:
DNS:controlplane, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, IP Address:10.96.0.1, IP Address:172.17.0.31
Signature Algorithm: sha256WithRSAEncryption
5e:7a:69:83:5c:b0:8a:b7:b3:5c:ff:21:f2:56:00:bb:81:c2:
7c:ee:6e:83:21:02:22:3e:37:1f:36:af:cc:b9:4e:97:6b:d3:
eb:c2:b8:4d:c8:f5:87:31:f4:12:8f:e5:31:79:0e:73:97:1e:
7a:85:f6:cd:1e:3c:71:25:83:b9:9c:10:98:ed:fd:ac:c1:80:
30:96:70:1c:55:31:ee:75:98:c7:60:76:a2:5c:e5:92:ce:27:
a5:ac:2a:23:71:b5:09:83:09:86:7e:31:9e:42:30:fd:32:87:
f0:22:9d:67:65:75:90:33:39:6a:39:4c:bf:eb:20:9c:8a:47:
e6:bd:e7:74:3c:bc:8c:67:ce:50:e1:fb:bc:3c:7b:63:c5:ff:
a4:5e:b1:28:4d:75:f6:74:5c:ba:fa:c6:49:a4:14:51:fa:12:
6c:94:25:f5:1f:6f:07:62:3e:ba:b3:e1:45:fc:a6:48:1a:26:
53:26:8c:31:79:55:2d:0c:7d:93:b9:98:22:5a:14:1c:a4:63:
fc:35:c0:70:73:a3:fe:ab:1e:8d:90:2c:27:61:85:28:1b:8a:
ff:77:e5:c9:e4:b6:ff:38:b6:76:71:45:a8:c8:43:03:be:7a:
cf:7b:1e:d5:a8:5f:7e:40:cc:1b:4f:f3:5f:ae:b7:44:1a:a1:
96:6a:11:d6
ㅁ What is the Common Name (CN) configured on the Kube API Server Certificate?
OpenSSL Syntax: openssl x509 -in file-path.crt -text -noout
[kubeapi-server]
[kubernetes]
[kube-apiserver]
[kube-api-server]
[api-server]
ㅁ What is the name of the CA who issued the kube API Server Certificate
[kubernetes]
[kube-apiserver]
[kubernetes-ca]
[ca]
ㅁ Which of the below alternate names is not configured on the Kube API Certificate?
[kube-master]
[controlplane]
[kubernetes.default.svc]
[kubernetes]
openssl -x509 -in /etc/kubernetes/pki/etcd/server.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 6805234504088490968 (0x5e710cb9cd6d13d8)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN = etcd-ca
Validity
Not Before: Mar 29 00:01:50 2021 GMT
Not After : Mar 29 00:01:50 2022 GMT
Subject: CN = controlplane
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:af:9e:60:cd:28:51:8d:e7:50:82:31:82:15:06:
b9:b9:a1:1c:6d:70:aa:f3:92:17:98:78:e0:6e:9d:
7b:0f:a3:40:6a:05:f0:63:4b:62:0d:26:7c:c1:bc:
01:ce:60:ef:a4:88:54:12:06:d8:6e:14:9f:b9:2f:
f6:db:7e:20:af:4b:22:ef:44:96:cf:eb:e9:4e:8e:
0c:b0:37:6f:8c:d1:ad:44:c8:80:2d:a8:af:6d:6b:
9e:4e:33:b2:4b:14:d9:d5:82:47:9a:10:ad:cd:3b:
5d:26:72:8a:1f:e3:85:61:37:fe:d5:b6:c8:9f:d6:
c3:52:d6:7f:4b:ee:7a:52:0f:3b:c3:d1:b0:ec:cb:
6b:18:9c:31:0b:21:6d:b1:9b:bf:c6:e5:70:a8:bc:
6b:3b:43:a5:26:5c:d1:63:35:d4:b9:02:cb:2d:bd:
9a:30:ff:7d:39:fd:63:ee:68:86:b2:e2:69:9f:a3:
b1:d3:c7:ba:e4:1c:a6:3c:42:c8:44:f9:07:bf:2e:
75:6a:0f:08:3c:6c:4c:44:d5:57:bb:d8:61:61:b3:
c9:81:16:20:79:b5:9b:b9:e0:65:27:04:6e:0d:8c:
8a:cf:8b:e7:7e:39:b0:ef:ff:28:9a:06:d0:7b:b9:
84:f0:df:3f:84:e7:82:82:d9:00:b3:98:8d:f9:2f:
e8:cb
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Subject Alternative Name:
DNS:controlplane, DNS:localhost, IP Address:172.17.0.31, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1
Signature Algorithm: sha256WithRSAEncryption
4e:da:d3:47:8d:1e:aa:26:71:10:a9:11:bd:b1:2a:6d:ee:89:
4b:4b:e1:eb:bd:8b:a8:5a:a1:77:e9:7c:63:67:26:34:be:b0:
4b:08:16:13:82:13:59:6e:1d:50:41:65:ba:3d:2f:d7:af:f5:
bc:cd:6c:40:91:92:f2:f0:ed:85:f1:f2:89:4c:00:a7:5c:23:
03:74:db:45:09:7d:6c:52:97:ed:e1:ce:2b:62:12:ef:3a:6e:
02:27:8e:e4:0a:3f:ef:54:d3:11:bb:17:f7:ee:40:5b:88:06:
96:ef:20:e2:2b:62:cd:8f:eb:a2:f3:33:5c:71:29:c9:ab:cd:
a0:99:1e:a4:fe:33:7d:7a:d4:4a:9a:7d:19:bd:85:e3:a2:fd:
aa:25:85:ec:56:38:ca:1f:fa:36:af:6e:84:82:99:f7:4b:19:
6c:ad:2a:70:a1:47:e7:36:e5:c7:fa:63:99:a7:d0:a1:e6:23:
43:56:3e:8c:3f:bc:6b:12:8e:06:a9:4b:5a:d2:eb:05:6d:4a:
bd:9d:d9:99:01:44:fb:28:53:b5:ea:4c:0c:de:e8:d4:03:5e:
9b:d7:bf:75:11:c3:e2:fd:62:7a:27:91:6b:a5:e9:30:34:e7:
73:92:67:b2:5e:ed:2a:28:55:d7:f7:9d:75:04:ca:7c:4a:31:
16:34:c7:e5
ㅁ Waht is the Common Name (CN) configured on the ETCD Server certificate?
[etcd-server]
[kubernetes]
[controlplane]
[etcd]
ㅁ How long, fromt the issued date , is the Kube-API Server Certificate valid for?
file: /etc/kubernetes/pki/apiserver.crt
[6 months]
[1 Year]
[10 Year]
[2 Year]
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout
Validity
Not Before: Mar 29 00:01:49 2021 GMT
Not After : Mar 29 00:01:49 2022 GMT
ㅁ How long from the issued data, is the Root CA Certificate valid for?
file: /etc/kubernetes/pki/ca.crt
[6 months]
[1 Year]
[10 Year]
[2 Year]
openssl x509 -in /etc/kubernetes/pki/ca.crt -text -noout
Validity
Not Before: Mar 29 00:01:49 2021 GMT
Not After : Mar 27 00:01:49 2031 GMT
ㅁ Kubectl suddenly stops reponsponding to your commands. check it out ! Someone recently modified the /etc/kubernetes/manifest/etcd.yaml file
You are asked to invetigate and fix the issue. Once you fix the issue wait for something for kubectl to resond. Check the logs of the ETCD container.