目前在生成CSR(证书请求文件)、操作SSL证书方面,openssl是比较主流的方式
1. 安装
安装包放百度云了,链接:https://pan.baidu.com/s/17WttxxEPNIeuKExaGR4TpA 密码:q5ev
下载后直接安装到默认路径,打开C:\OpenSSL-Win64\bin下的openssl.exe
2. 生成私钥及CSR(证书请求文件)
生成私钥:genrsa -out cert/key.key 2048
(cert为bin下文件夹,自定义)
生成CSR:req -new -key cert/key.key -outform PEM -out cert/client.csr
有了CSR之后,就可以去证书签发机构签发客户端证书了(比如百度PKI体系,收费),当然如果仅是为了测试或了解,可尝试自签证书
3. CSR中携带可选域名
以CSDN举例,如果是双向认证,那么服务端证书若没有【使用者可选名称】,开发同仁们惯用的chrome浏览器会报错,当然,测试确认,代码发起https请求依旧是可以完成双向认证的
因此,需要换一种方式,来生成服务端证书请求文件:
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext
[ dn ]
C=CN(代表中国)
ST=shanghai
L=Shanghai
O=企业
OU=项目
emailAddress=邮箱地址
CN =网关要使用的服务端域名
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 =网关要使用的服务端域名(也即是生成证书文件后的使用者可选名称这个字段)
将以上内容保存为文本server.txt,在openssl调用指令:
req -new -sha256 -nodes -out cert/server.csr -newkey rsa:2048 -keyout cert/server.key -config cert/server.txt
即可得到同第二步相同的私钥及CSR文件