cfssl创建ca证书,调整ca证书的有效期

1. 使用cfssl创建ca证书

1.1 生成ca证书的证书请求文件ca-csr.json

cfssl print-defaults csr > ca-csr.json
结果:

cat ca-csr.json 
{
    "CN": "example.net",
    "hosts": [
        "example.net",
        "www.example.net"
    ],
    "key": {
        "algo": "ecdsa",
        "size": 256
    },
    "names": [
        {
            "C": "US",
            "L": "CA",
            "ST": "San Francisco"
        }
    ]
}

1.2 创建cfssl的配置文件(其实对ca证书没什么用)

cfssl print-defaults config > ca-config.json
结果:

cat ca-config.json
{
    "signing": {
        "default": {
            "expiry": "168h"
        },
        "profiles": {
            "www": {
                "expiry": "8760h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth"
                ]
            },
            "client": {
                "expiry": "8760h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "client auth"
                ]
            }
        }
    }
}

1.3 创建ca证书

cfssl gencert -initca ca-csr.json |cfssljson -bare ca
结果:

cfssl gencert -initca ca-csr.json |cfssljson -bare ca
2021/12/07 17:18:29 [INFO] generating a new CA key and certificate from CSR
2021/12/07 17:18:29 [INFO] generate received request
2021/12/07 17:18:29 [INFO] received CSR
2021/12/07 17:18:29 [INFO] generating key: ecdsa-256
2021/12/07 17:18:29 [INFO] encoded CSR
2021/12/07 17:18:29 [INFO] signed certificate with serial number 347161065711743393599864539791099567853430930598

新创建的文件包括:
ca证书:ca.pem
ca私钥:ca-key.pem
ca证书请求文件:ca.csr

1.4 查看ca证书有效期

cfssl certinfo -cert ca.pem |grep not
结果

cfssl certinfo -cert ca.pem |grep not
  "not_before": "2021-12-07T09:13:00Z",
  "not_after": "2026-12-06T09:13:00Z",

可以看出来ca证书的有效期是5年。

2. 修改ca证书有效期

使用cfssl签发一般服务证书的时候可以通过ca-config.json中的profile参数配置服务证书的有效期。
配置ca证书的有效期需要在ca证书请求文件ca-csr.json配置。

2.1 配置方法:

ca-csr.json中添加字段: "CA":{"expiry":"175200h"},

如下:

{
    "CA":{"expiry":"175200h"},
    "CN": "example.net",
    "hosts": [
        "example.net",
        "www.example.net"
    ],
    "key": {
        "algo": "ecdsa",
        "size": 256
    },
    "names": [
        {
            "C": "US",
            "L": "CA",
            "ST": "San Francisco"
        }
    ]
}

2.2 重新生成ca证书

# 使用修改后的ca-csr.json创建ca证书
cfssl gencert -initca ca-csr.json |cfssljson -bare ca
2021/12/07 19:48:01 [INFO] generating a new CA key and certificate from CSR
2021/12/07 19:48:01 [INFO] generate received request
2021/12/07 19:48:01 [INFO] received CSR
2021/12/07 19:48:01 [INFO] generating key: ecdsa-256
2021/12/07 19:48:01 [INFO] encoded CSR
2021/12/07 19:48:01 [INFO] signed certificate with serial number 698387629496571533773096688804230393778863690470

# 确认ca证书有效期为20年。
cfssl certinfo -cert ca.pem |grep not
  "not_before": "2021-12-07T11:43:00Z",
  "not_after": "2041-12-02T11:43:00Z",

======== END ========

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值