Kubernetes实战|Kubernetes实战(十九)-CA证书制作

Kubernetes 系统的各组件需要使用 TLS 证书对通信进行加密,本文档使用 CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 和其它证书。
1、CFSSL安装

[root@k8s-master ~]# cd /usr/local/src [root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 [root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 [root@k8s-master src]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 [root@k8s-master src]# chmod +x cfssl* [root@k8s-master src]# mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo [root@k8s-master src]# mv cfssljson_linux-amd64/usr/bin/cfssljson [root@k8s-master src]# mv cfssl_linux-amd64/usr/bin/cfssl

2、创建临时证书目录
[root@k8s-master src]# mkdir ssl && cd ssl [root@k8s-master ssl]# cfssl print-defaults config > config.json [root@k8s-master ssl]# cfssl print-defaults csr > csr.json

【Kubernetes实战|Kubernetes实战(十九)-CA证书制作】3、创建用来生成 CA 文件的 JSON 配置文件
[root@k8s-master ssl]#cat >ca-config.json <

4、 创建用来生成 CA 证书签名请求(CSR)的 JSON 配置文件
[root@k8s-master ssl]# cat > ca-csr.json <

5、生成CA证书(ca.pem)和密钥(ca-key.pem)
[root@k8s-master ssl]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca [root@k8s-master ssl]# ls -l ca* -rw-r--r-- 1 root root290 Mar4 13:45 ca-config.json -rw-r--r-- 1 root root 1001 Mar4 14:09 ca.csr -rw-r--r-- 1 root root208 Mar4 13:51 ca-csr.json -rw------- 1 root root 1679 Mar4 14:09 ca-key.pem -rw-r--r-- 1 root root 1359 Mar4 14:09 ca.pem

6、分发证书
[root@k8s-master ssl]# cp ca.csr ca.pem ca-key.pem ca-config.json /opt/kubernetes/sslSCP证书到k8s-node1和k8s-node2节点 [root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 10.200.3.106:/opt/kubernetes/ssl [root@k8s-master ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 10.200.3.107:/opt/kubernetes/ssl

服务各组件的证书会在后面安装和使用时在生成。

    推荐阅读