0.架构图
1.本节架构
主机 | IP | 角色 |
---|---|---|
hdss7-11.host.com | 10.4.7.11 | DNS服务器 |
2.安装cfssl证书签发工具
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/bin/cfssl
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/bin/cfssl-json
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/bin/cfssl-certinfo
chmod +x /usr/bin/cfssl*
which /usr/bin/cfssl
which /usr/bin/cfssl-json
which /usr/bin/cfssl-certinfo
3.创建生成CA证书签名(csr)的JSON配置文件
证书类型
client certificate:客户端使用,用于服务端认证客户端,例如etcdctl、etcd proxy、fleetctl、docker客户端。
server certificate:服务端使用,客户端以此验证服务端身份,例如docker服务端、kube-apiserver。
peer certificate:双向证书,用于etcd集群成员间通信。
mkdir /opt/certs
cat > /opt/certs/ca-csr.json <<'EOF'
{
"CN": "kubernetes",
"hosts": [
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "GuangZhou",
"ST": "GuangZhou",
"O": "k8s",
"OU": "yw"
}
],
"ca": {
"expiry": "175200h"
}
}
EOF
CN: Common Name,浏览器使用该字段验证网站是否合法,一般写的是域名。非常重要。浏览器使用该字段验证网站是否合法
C: Country, 国家
ST: State,州,省
L: Locality,地区,城市
O: Organization Name,组织名称,公司名称
OU: Organization Unit Name,组织单位名称,公司部门
4.生成CA证书(ca.pem)和密钥(ca-key.pem)
cd /opt/certs/
cfssl gencert -initca ca-csr.json | cfssl-json -bare ca
[root@hdss7-200 certs]# ls
ca.csr ca-csr.json ca-key.pem ca.pem