201 创建跟证书和秘钥
00.安装CFSSL
cfssl和 cfssljson 命令行工具用于提供 PKI Infrastructure 基础设施与生成 TLS 证书。
Linux
# 或许你需要先执行 `yum install -y wget` 以安装 wget
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64
sudo mv cfssl_linux-amd64 /usr/local/bin/cfssl
sudo mv cfssljson_linux-amd64 /usr/local/bin/cfssljson验证
验证 cfssl 的版本为 1.2.0 或是更高
$ cfssl version
Version: 1.2.0
Revision: dev
Runtime: go1.6注意:cfssljson 命令行工具没有提供查询版本的方法。
01.配置CA并创建TLS证书
我们将使用 CloudFlare's PKI 工具 cfssl 来配置 PKI Infrastructure,然后使用它去创建 Certificate Authority(CA),并为 etcd、kube-apiserver、kubelet 以及 kube-proxy 创建 TLS 证书。
CA 证书是集群所有节点共享的,只需要创建一个 CA 证书,后续创建的所有证书都由它签名。
新建 CA 配置文件
字段说明
ca-config.json:可以定义多个 profiles,分别指定不同的过期时间、使用场景等参数;后续在签名证书时使用某个 profile;signing:表示该证书可用于签名其它证书;生成的 ca.pem 证书中CA=TRUE;server auth:表示client可以用该 CA 对server提供的证书进行验证;client auth:表示server可以用该CA对client提供的证书进行验证;
创建 CA 证书签名请求
创建 ca-csr.json 文件,内容如下:
CN:Common Name,kube-apiserver 从证书中提取该字段作为请求的用户名 (User Name);浏览器使用该字段验证网站是否合法;O:Organization,kube-apiserver 从证书中提取该字段作为请求用户所属的组 (Group);C: 国家ST: 省份L: 城市OU: 部门或单位名称
生成 CA 凭证和私钥
结果将生成以下两个文件:
最后更新于
这有帮助吗?