openssl实在是太过于博大精深了,经常会遇到各种需求不得不查看手册或者Google,现在将已经使用过的部分功能分类收集一下,便于日后在此查看。
产生根证书并签发证书
生成根证书
openssl genrsa -out RootCA.key 2048
openssl req -new -key RootCA.key -out RootCA.csr -subj /C=CN/ST=SX/O=IT/OU=Test/CN=RootCA -config openssl.cnf
openssl ca -selfsign -in RootCA.csr -key RootCA.key -config openssl.cnf -extensions v3_ca -out RootCA.pem -outdir ./ -batch -startdate 20190101000000Z -enddate 20290101000000Z -rand_serial
签发证书
openssl genrsa -out Server1.key 2048
openssl req -new -key Server1.key -out Server1.csr -subj /C=CN/ST=SX/O=IT/OU=Test/CN=Server1 -config openssl.cnf
openssl ca -in Server1.csr -cert RootCA.pem -keyfile RootCA.key -config openssl.cnf -extensions usr_cert -out Server1.pem -outdir ./ -batch -startdate 20190101000000Z -enddate 20290101000000Z -rand_serial
这种方式应该是最基本的证书操作流程了,生成req,自签名/签名,都是通过openssl ca来完成的,可以使用所有ca命令的参数,相比较x509来签名灵活度更高
使用openssl验证OCSP
通过openssl模拟OCSP服务
openssl ocsp -index index.txt -port 8888 -rsigner RootCA.pem -rkey RootCA.key -CA RootCA.pem
使用openssl校验证书
openssl ocsp -issuer RootCA.pem -cert Server.pem -cert Client.pem -url http://localhost:8888
根证书添加CRL和OCSP信息
在openssl.cnf配置文件[ v3_ca ] 一节中,添加CRL或者OCSP信息
#Authority Info Access
authorityInfoAccess = OCSP;URI:http://127.0.0.1:8888
#CRL distribution points
crlDistributionPoints = URI:http://127.0.0.1:8080/my.crl