名词解释
x509证书一般会用到三类文件,key,csr,crt。
- Key是私用密钥,openssl格式,通常是rsa算法。
- csr是证书请求文件,用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请,还可以设定一个密钥。
- crt是CA认证后的证书文件(windows下面的csr,其实是crt),签署人用自己的key给你签署的凭证。
文件类型
- .key格式:私有的密钥
- .csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写
- .crt格式:证书文件,certificate的缩写
- .crl格式:证书吊销列表,Certificate Revocation List的缩写
- .pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式
- .srl格式:用于记录当前子证书的序列号,当生成子证书时会增加1
自签证书
生成自签根证书
使用根证书签发子证书
生成子证书时会生成根证书的srl文件,用于记录子证书的最大序号,来确保子证书的序列号不重复
生成根证书
CA挖矿证书生成示例:
# yl ca --生成根证书MINER挖矿
openssl genrsa -aes128 -out yl.key 2048 这一行是生成私钥
openssl req -new -x509 -days 36500 -key yl.key -out yl.crt -subj "/C=CN/ST=guangdong/L=Shenzhen/O=CA/OU=yl@MINER" 这一行是生成根证书,把生成csr和crt合成了一条命令
生成二级证书
生成二级证书会用到根证书yl.crt文件和yl.key文件
openssl genrsa -aes128 -out dali.key 2048 生成私钥key文件
生成dali.csr请求文件
openssl req -new -key dali.key -out dali.csr -subj "/C=CN/ST=guangdong/L=Shenzhen/O=CA/OU=yl@MINER/CN=dali"
生成证书,openssl.conf需要从别的目录复制到当前目录,yl.crt和yl.key是根证书文件,-CAcreateserial表示要生成yl.srl序列号文件
openssl x509 -req -days 3650 -extensions v3_ca -extfile openssl.cnf -in dali.csr -out dali.crt -CA yl.crt -CAkey yl.key -CAcreateserial
验证证书
openssl verify -CAfile yl.crt dali.crt
从证书取Pubkey
openssl x509 -in dali3.crt -pubkey -noout
输出序号
openssl x509 -in dali3.crt -serial -noout
证书expiration date
openssl x509 -in dali2.crt -startdate -noout
openssl x509 -in dali2.crt -enddate -noout