cfssl证书生成

证书地址 cfssl下载

一. 创建CA证书

1. ca配置文件ca-config.json

主要作用就是,不同组件证书的形式,有效期是不一样的,因此,在ca配置中心,应该有一个配置文件,来具体的配置

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

字段说明:

2. ca证书签名请求ca-csr.json

就是申请证书的人,你得把你的基本信息告诉证书颁发中心吧,证书颁发中心,根据你填写的基本信息,来生成你的证书。

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

参数说明:

这两个参数在后面的kubernetes启用RBAC模式中很重要,因为需要设置kubelet、admin等角色权限,那么在配置证书的时候就必须配置对了,”在etcd这两个参数没太大的重要意义,跟着配置就好。”

3. 生成ca证书和私钥

cfssl gencert -initca ca-csr.json | cfssljson -bare ca

生成ca.csr,ca-key.pem,ca.pem

二. 颁发证书

1. etcd-csr.json

tcd组件的基本信息,认证中心根据这个文件,生成证书

{
    "CN": "etcd",
    "hosts": [
        "127.0.0.1",
        "172.16.91.195"
    ],
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "ST": "fuzhou",
            "L": "fuzhou",
            "O": "etcd",
            "OU": "System"
        }
    ]
}

2. 生成etcd证书

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

生成ca.csr,ca-key.pem,ca.pem