名词解释

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

参考

openssl生成SSL证书的流程