标签:需要 json 共享 ca证书 cer bat conf dig for
继续前一章。
三、创建CA证书和秘钥文件
kubernetes系统的各组件需要使用TLS证书对通信进行加密,本文采用CloudFlare的PKI工具cfssl来生成Certificate Authority(CA)和其他证书
生成的CA证书和秘钥文件如下。证书文件只需要创建一次。其他节点使用的时候,复制即可
……pem
待补充
……pem
使用证书的组件如下
…………
待补充
…………
3.1 安装cfssl工具
[k8s@k8s-m1 ~]$ cd /opt/k8s/cert
[k8s@k8s-m1 k8s]$ sudo mkdir -p /opt/k8s/cert && sudo chown -R k8s /opt/k8s && cd /opt/k8s [k8s@k8s-m1 k8s]$ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 [k8s@k8s-m1 k8s]$ mv cfssl_linux-amd64 /opt/k8s/bin/cfssl [k8s@k8s-m1 k8s]$ wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 [k8s@k8s-m1 k8s]$ mv cfssljson_linux-amd64 /opt/k8s/bin/cfssljson [k8s@k8s-m1 k8s]$ wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 [k8s@k8s-m1 k8s]$ mv cfssl-certinfo_linux-amd64 /opt/k8s/bin/cfssl-certinfo [k8s@k8s-m1 k8s]$ chmod +x /opt/k8s/bin/*
3.2 创建根证书(CA)
CA证书是集群所有节点共享的,只需要创建一个CA证书,后续创建的所有证书都由它签名。
3.3 创建CA证书配置文件
CA证书的配置文件用于配置根证书的使用场景(profile)和具体的参数(usage,过期时间,服务端认证,客户端认证,加密等),后续在前签名其他证书的时候,需要制定特定场景。
cat > ca-config.json <<EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "87600h"
}
}
}
}
EOF
3.4 创建证书签名请求文件
cat > ca-csr.json <<EOF
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "BeiJing",
"L": "BeiJing",
"O": "k8s",
"OU": "4Paradigm"
}
]
}
EOF
3.5 生成CA证书和私钥
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
ls ca*
3.6 分发证书文件
source /opt/k8s/bin/environment.sh # 导入 NODE_IPS 环境变量
for node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_ip}"
ssh k8s@${node_ip} "sudo mkdir -p /etc/kubernetes/cert && sudo chown -R k8s /etc/kubernetes"
scp ca*.pem ca-config.json k8s@${node_ip}:/etc/kubernetes/cert
done
参考
二进制安装kubernetes v1.11.2 (第二章 创建CA证书和秘钥文件)
标签:需要 json 共享 ca证书 cer bat conf dig for
原文地址:https://www.cnblogs.com/aast/p/9842774.html