命令
1、查看证书过期时间
cfssl certinfo -cert [证书]| grep not
2、生成ca证书的证书请求文件
cfssl print-defaults csr > ca-csr.json
3、生成cfssl的配置文件
cfssl print-defaults config > ca-config.json
4、创建ca证书
cfssl gencert -initca ca-csr.json |cfssl-json -bare ca
5、创建test证书
cat > test-csr.json << mm
{
"CN":"yys",
"hosts":[
"127.0.0.1",
"192.168.11.211",
"192.168.11.212"
],
"key":{
"algo":"rsa",
"size":2048
},
"names":[
{
"C":"CN",
"L":"zhejiang",
"ST":"test",
"O":"test",
"OU":"System"
}
]
}
mm
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www test-csr.json | cfssl-json -bare test
ps: 更多细节请使用 cfssl --help
证书时间修改
1、修改ca证书有效时间
在ca-csr.json中添加字段: "CA":{"expiry":"876000h"},
{ "CA":{"expiry":"876000h"},
"CN": "example.net",
"hosts": [
"example.net",
"www.example.net"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "US",
"L": "CA",
"ST": "San Francisco"
}
]
}
CN: Common Name,浏览器使用该字段验证网站是否合法,一般写的是域名。非常重要。浏览器使用该字段验证网站是否合法
C: Country, 国家
L: Locality,地区,城市
O: Organization Name,组织名称,公司名称
OU: Organization Unit Name,组织单位名称,公司部门
ST: State,州,省
2、修改服务证书时间
在ca-config.json中的profile参数配置服务证书的有效期
{
"signing": {
"default": {
"expiry": "876000h"
},
"profiles": {
"www": {
"expiry": "876000h",
"usages": [
"signing",
"key encipherment",
"server auth"
]
},
"client": {
"expiry": "876000h",
"usages": [
"signing",
"key encipherment",
"client auth"
]
}
}
}
}
server auth:表示 client 可以用该 CA 对 server 提供的证书进行验证
client auth:表示 server 可以用该 CA 对 client 提供的证书进行验证
ps: 服务证书是基于ca证书时间的,如果服务证书有效100年,而ca只有10年,那么服务证书实际有效期也只有10年。