本次制作证书是用于浏览器跟c++写的本地服务端进行websocket协议https的连接
Chrome58以后对https的证书认证较为严格,证书里必须带有正确的Common Name,也就是必须有DNS Name=ajax.googleapis.com, IP Address=127.0.0.1这样的信息,浏览器才认为真正安全
步骤
1. 安装或者编译一个OpenSSL, 在bin目录里有OpenSSL可执行程序 (Linux, Windows, MacOX 都可以的)
2. 修改openssl.cnf文件。
在[ req ]一节下找到req_extensions = v3_req 取消注释(去掉#号)
在[ v3_req ] 一节 增加 subjectAltName = @alt_names
在[ v3_req ] 一节 的上方增加一节
[ alt_names ]
DNS.1 = ajax.googleapis.com
DNS.2 = localhost
IP.1 = 127.0.0.1
IP.2 = 192.168.11.70
3. 开始正常的步骤制作证书
一、CA证书制作
1.创建私钥 :
C:\OpenSSL\bin>openssl genrsa -out ca/ca.key 1024
2.创建证书请求 :
C:\OpenSSL\bin>openssl req -new -x509 -days 36500 -key ca/ca.key -out ca/ca-cert.crt
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:ChongQing
Locality Name (eg, city) []:ChongQing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ChongQingYiZheng
Organizational Unit Name (eg, section) []:RuanJianBu
Common Name (eg, YOUR name) []:127.0.0.1
Email Address []:127.0.0.1
openssl genrsa -out cf/nginx.key 2048
6.生成(.csr)请求文件
openssl req -new -key cf/nginx.key -out cf/nginx.csr -config cf/openssl.cnf
注意Common Name要写上自己的域名
7.用自己的CA证书签名
openssl x509 -req -in cf/nginx.csr -CA ca/ca-cert.crt -CAkey ca/ca.key -CAcreateserial -out cf/nginx.crt -extensions v3_req -extfile cf/openssl.cnf -days 36500
将CA证书放进受信任的根证书颁发机构,nginx.key,nginx.crt放进服务端;