#yyds干货盘点#怎样使用cfssl为etcd颁发SSL证书

我自横刀向天笑,去留肝胆两昆仑。这篇文章主要讲述#yyds干货盘点#怎样使用cfssl为etcd颁发SSL证书相关的知识,希望能为你提供帮助。
1.颁发步骤【#yyds干货盘点#怎样使用cfssl为etcd颁发SSL证书】加密证书我们可以向证书机构(CA)申请,但是由于我们部署在内网,我们自己自己创建一个CA后给自己颁发证书
(1)创建证书颁发机构
(2)填写表单--写明etcd所在节点的IP
(3)向证书颁发结构申请证书
2.安装cfssl从cfssl官网中选择对应的cfssl相关可执行程序,https://pkg.cfssl.org/
这里直接使用wget下载保存到/usr/local/bin目录中

# 下载cfssl wget -c https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/local/bin/cfssl # 下载cfssl-certinfo wget -c https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/local/bin/cfssl-certinfo # 下载cfssljson wget -c https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/local/bin/cfssljson # 赋予cfssl相关可执行权限 chmod a+x /usr/local/bin/cfssl*

3.颁发证书(1)创建签证机构(CA)
定义一个ca-csr.json文件,此文件定义签证机构(CA)的相关信息,填入以下内容
"CN": "etcd CA", "key": "algo": "rsa", "size": 2048 , "names": ["C": "CN", "L": "Guizhou", "ST": "Qiandongnan"]

使用以下命令使用配置文件中,创建一个签证机构
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -

会生成一个ca.pem公钥文件和ca-key.pem私钥文件,这两个文件是CA服务器的证书。接下来我们需要给客户端颁发证书。
(2)定义证书信息
先创建一个ca-config.json文件,定义待颁发证书的基本信息(如有效时间),填写以下内容
"signing": "default": "expiry": "87600h" , "profiles": "www": "expiry": "87600h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ]

再创建一个server-csr.json文件,定义待颁发证书的详细信息,如下
"CN": "etcd", "hosts": [ "192.168.56.101", "192.168.56.102", "192.168.56.103" ], "key": "algo": "rsa", "size": 2048 , "names": [ "C": "CN", "L": "Guizhou", "ST": "Qiandongnan" ]

(3)向签证机构(CA)申请证书
完成以上步骤,使用以下命令给客户端申请证书
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server

此时,多出客户端两个证书相关文件server.pem和server-key.pem,使用ls *pem命令查看,可以看到四个pem文件,如下
ca-key.pemca.pemserver-key.pemserver.pem


    推荐阅读