安装证书工具

安装cfssl,此工具生成证书非常方便, pem证书与crt证书,编码一致可直接使用。

1
2
3
4
5
6
7
8
9
10
11
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
chmod +x cfssl_linux-amd64
mv cfssl_linux-amd64 /usr/local/bin/cfssl

wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
chmod +x cfssljson_linux-amd64
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
chmod +x cfssl-certinfo_linux-amd64
mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo

准备证书签名请求

1
vim admin-csr.json

内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"CN": "admin",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "ShangHai",
"L": "XS",
"O": "system:masters",
"OU": "System"
}
]
}

证书请求中的O指定该证书的Group为system:masters
而RBAC预定义的ClusterRoleBinding将Groupsystem:masters与ClusterRolecluster-admin绑定,这就赋予了该证书具有所有集群权限。

创建证书和私钥

1
cfssl gencert -ca=/etc/kubernetes/pki/ca.crt -ca-key=/etc/kubernetes/pki/ca.key --profile=kubernetes admin-csr.json | cfssljson -bare admin

会生成以下3个文件:

1
2
3
admin.csr
admin-key.pem
admin.pem

生成pkc格式证书

可以通过openssl来转换成pkc格式

1
openssl pkcs12 -export -out ./jenkins-admin.pfx -inkey ./admin-key.pem -in ./admin.pem -passout pass:<secret>

最后将证书文件jenkins-admin.pfx上传到jenkins,填入设置的secret后jenkins会展示解析的部分证书信息,表明凭据已经配置成功。