CFSSL制作ETCD证书

找台CentOS7(10.3.8.234)来做CA制作自签名证书。

1、下载cfssl工具
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O cfssl -P /usr/local/bin/
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O cfssljson -P /usr/local/bin/
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O cfssl-certinfo -P /usr/local/bin/
chmod +x /usr/local/bin/cfssl*

2、生成证书
mkdir ssl
cd ssl
生成默认的配置文件和证书签名请求文件

cfssl print-defaults config > ca-config.json
cfssl print-defaults csr > ca-csr.json

修改CA配置文件
[root@cobbler ssl]# cat ca-config.json

{
    "signing": {
        "default": {
            "expiry": "43800h"
        },
        "profiles": {
            "server": {
                "expiry": "43800h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth"
                ]
            },
            "client": {
                "expiry": "43800h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "client auth"
                ]
            },
            "etcd": {
                "expiry": "43800h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth",
                    "client auth"
                ]
            }
        }
    }
}

修改CA请求文件
[root@cobbler ssl]# cat ca-csr.json

{
    "CN": "etcd",
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "ST": "Guangdong",
            "L": "Guangzhou",
            "O": "etcd",
            "OU": "System"
        }
    ]
}

生成CA证书

[root@cobbler ssl]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca

该命令会在当前目录下生成ca.csr、ca-key.pem、ca.pem三个文件。
etcd证书和私钥
创建etcd证书签名请求etcd-csr.json:

{
    "CN": "etcd",
    "hosts": [
      "127.0.0.1",
      "10.3.8.101",
      "10.3.8.102",
      "10.3.8.103",
      "localhost",
      "core1",
      "core2",
      "core3"
    ],
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "ST": "Guangdong",
            "L": "Guangzhou",
            "O": "etcd",
            "OU": "System"
        }
    ]
}

hosts中三个ip即是三个ETCD节点,因为共用证书,所以写一起了。

生成etcd证书和私钥:

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=etcd etcd-csr.json | cfssljson -bare etcd

生成etcd.pem etcd-key.pem,三个节点共用此证书。

附:数字证书中主题(Subject)中字段的含义
一般的数字证书产品的主题通常含有如下字段:
公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端证书则为证书申请者的姓名;
组织名称,公司名称(Organization Name) 简称:O 字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端单位证书则为证书申请者所在单位名称;
组织单位名称,公司部门(Organization Unit Name) 简称:OU字段

扫描二维码关注公众号,回复: 5473935 查看本文章

证书申请单位所在地
所在城市 (Locality) 简称:L 字段
所在省份 (State/Provice) 简称:S 字段,State:州,省
所在国家 (Country) 简称:C 字段,只能是国家字母缩写,如中国:CN

猜你喜欢

转载自blog.csdn.net/liuyuhui_gdtyj/article/details/84863925
今日推荐