windows使用openssl生成根证书及SSL证书签发
网上找了很多生成命令,大都中间会出问题,我是在win10进行证书生成,踩过的坑进行记录。
1 OpenSSL下载
最新的版本:https://github.com/openssl/openssl/archive/OpenSSL_1_1_1b.zip
2 windows下安装及配置
安装过程不写了。
(1)配置主要是环境变量path,将openssl配置到环境变量里,避免只能在bin目录下才能执行。
(2)还有证书生成的时候,需要读取cfg文件,配置参数OPENSSL_CONF:
(3)cfg文件修改
在证书签发时,会读取cfg文件,判断一些证书序列号、证书是否签发等等的信息,需要在文件里进行配置,而且win10对C盘读写权限要求太高,建议直接将一些路径写到其他盘符。下面红框圈出来的参数,会用到,按照自己的情况创建即可。尤其是serial这个文件,会读取你已有的证书序列号,依次往后生成,嫌麻烦就直接写0,正常点应该是16进制的证书序列号,一般10多位。index.txt可以写一个空文件,是用于记录证书信息的。
3 签发命令
(1)生成自己的根证书
##生成根CA密钥
openssl genrsa -out ca.key 2048
##生成CA根证书
openssl req -new -x509 -days 7304 -key ca.key -out ca.crt -subj "/C=CN/ST=shandong/L=jinan/O=My SSL G1/OU=IT Dept/CN=My SSL G1 Server"
(2)生成服务器证书密钥及证书签发
##生成SSL证书私钥:
openssl genrsa -out server_domain.pem 2048
##制作SSL证书私钥
openssl rsa -in server_domain.pem -out server_domain.key
##生成SSL证书请求
openssl req -new -key server_domain.pem -out server_domain.csr -subj "/C=CN/ST=shandong/L=jinan/O=my domain test/OU=IT Dept/CN=my domain"
##根CA进行SSL证书签发
openssl ca -policy policy_anything -days 3652 -cert ca.crt -keyfile ca.key -in server_domain.csr -out server_domain.crt
4 OK啦