使用openssl生成证书

2021-12-24 15:23:34nodejs

方法1

  1. 下载 并安装openssl

  2. 生成秘钥

openssl genrsa -des3 -out f:/work/server.key 2048

会提示你输入密码,输入简单的123456或者别的都行

生成完成之后,可以使用下面的命令去掉密码:

openssl rsa -in f:/work/server.key -out f:/work/server.key
  1. 创建证书的申请文件
openssl req -new -key f:/work/server.key -out f:/work/server.csr

如果在执行上面的命令的时候出现以下错误:Unable to load config info from /usr/local/ssl/openssl.cnf

这是因为openssl找不到对应配置文件,那么我们就需要弄到这个配置文件,
如果你电脑安装了git的话,那么恭喜你,在git里面有这个文件,
我们可以使用git下面的这个文件来执行上面的命令,修改一下,变成下面这样

openssl req -new -key f:/work/server.key -out f:/work/server.csr -config "C:\Program Files\Git\mingw64\ssl\openssl.cnf"
  1. 使用上面的证书申请文件和ca证书,来创建自己的证书
openssl x509 -req -days 3650 -in f:/work/server.csr -CA f:/work/ca.crt -CAkey server.key -CAcreateserial -out f:/work/server.crt

方法2

  1. 生成Private Key 和 CSR。
openssl req -new -newkey rsa:2048 -nodes -out mydomain.csr -keyout private.key -config "C:\Program Files\Git\mingw64\ssl\openssl.cnf"

要在:Organization Name (eg, company)提示中,输入localhost,否则证书会提示不安全。

  1. 创建 domains.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
  1. 利用上一步生成的private.key和mydomain.csr生成自签名证书。需要引入: -extfile domains.ext
openssl x509 -req -days 365 -in mydomain.csr -signkey private.key -extfile domains.ext -out mydomain.crt
  1. 将证书安装到系统的 受信任的根证书颁发机构