网站首页 文章专栏 03准备证书.md
为了集群节点之间通信的安全性,为api server增加https,这需要我们生成https证书。
https证书可以是公共ca也可是自签ca,在这里为了方便,使用自签ca。
如果是首次安装k8s,
/etc/kubernetes/pki/
目录不存在,那么可以由kubeadm完成证书的生成. 本例中该目录存在,且已经有ca
# 生成顶级CA的公钥证书和私钥文件,有效期10年(RSA 1024bits,默认)
openssl req -new -x509 -days 3650 -keyout ca.key -out ca.crt
# 为顶级CA的私钥文件去除保护口令
openssl rsa -in ca.key -out ca.key
# 为应用证书/中级证书生成私钥文件
openssl genrsa -out apiserver.key
# 根据私钥文件,为应用证书/中级证书生成 csr 文件(证书请求文件)
openssl req -new -key apiserver.key -out apiserver.csr
这一步是workaround,并非标准步骤。但是不这样做会出错。
# 生成必要的文件,否则会报错 Using configuration from /usr/share/ssl/openssl.cfg I am unable to access the ./demoCA/newcerts directory ./demoCA/newcerts: No such file or directory
mkdir demoCA
mkdir demoCA/newcerts
touch demoCA/index.txt
touch demoCA/serial
echo 01 > demoCA/serial
将/etc/ssl/openssl.cnf
的[v3_ca]
部分添加subjectAltName = IP:192.168.25.180
, 这是你master节点的地址。
# 使用CA的公私钥文件给 csr 文件签名,生成应用证书,有效期10年
openssl ca -in apiserver.csr -out apiserver.crt -cert ca.crt -keyfile ca.key -days 3650 -policy policy_anything
将上面生成的文件复制到/etc/kubernetes/pki/
路径下。
参考:
TODO: