I have been poring over links related to kubeadm to try and change the cipher on my Kubernetes cluster certificate. The problem is that I need to disable DES/3DES so that this command will fail:
openssl s_client -connect IP:2379 -cipher "DES:3DES" -tls1_2
Some of the links I've looked through so far (if I list them all, this post will get too long):
- SSL Vulnerability Sweet32 (how this all started)
- kube-apiserver configuration
- 12 Kubernetes configuration best practices
- kubeadm alpha certs renew all
I was hoping that changing the kube-apiserver configuration to use these flags (in the /etc/kubernetes/manifests/kube-apiserver.yaml file) would help, but it did not (pardon typos, I cannot copy/paste out of the client I have to use):
...
spec:
containers:
- command:
- kube-apiserver
- ...
- --tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- --tls-min-version=VersionTLS12
image: k8s.gcr.io/kube-apiserver:v1.18.6
...
I could manually regenerate all the certificates in /etc/kubernetes/pki following these guidelines, but I am hoping to stick with the kubeadm or other Kubernetes-provided tools to auto-handle it. I can't find any documentation on manually generating each file on my own that is set up for people completely new to the administration.
Help, links, suggestions, etc. are appreciated! I'm not allowed to use the cluster or even demonstrate functionality to people until this is done, unfortunately.