一、 windows安裝 OpenSSL:
http://slproweb.com/products/Win32OpenSSL.html
二、 生成https證書
1、創(chuàng)建密鑰(注意:生成私鑰,需要提供一個至少4位,最多1023位的密碼。)
openssl genrsa -des3 -out server.key 2048
2、生成CSR(證書簽名請求)
openssl req -new -key server.key -out server.csr
說明:需要依次輸入國家,地區(qū),城市,組織,組織單位,Common Name和Email。其中Common Name,可以寫自己的名字或者域名,如果要支持https,Common Name應(yīng)該與域名保持一致,否則會引起瀏覽器警告。
可以將證書發(fā)送給證書頒發(fā)機(jī)構(gòu)(CA),CA驗證過請求者的身份之后,會出具簽名證書,需要花錢。另外,如果只是內(nèi)部或者測試需求,也可以使用OpenSSL實現(xiàn)自簽名。
3、刪除密鑰中的密碼
openssl rsa -in server.key -out server.key
說明:如果不刪除密碼,在應(yīng)用加載的時候會出現(xiàn)輸入密碼進(jìn)行驗證的情況,不方便自動化部署。
4、生成自簽名證書
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
5、生成pem格式的公鑰(有些服務(wù),需要有pem格式的證書才能正常加載)
openssl x509 -in server.crt -out server.pem -outform PEM
自簽名的證書,不被瀏覽器信任,適合內(nèi)部或者測試使用
6、crt轉(zhuǎn)cer
openssl x509 -in server.crt -out server.cer -outform DER
三、進(jìn)行Nginx配置
將生成的文件全部放到conf文件夾(其他路徑也可,配置nginx能找到即可)

image.png
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream wsbackend{
server 127.0.0.1:8082; #websocket地址
#keepalive 1000;
}
server {
listen 443 ssl; #默認(rèn)端口為 443
server_name localhost;
ssl_certificate server.pem;
ssl_certificate_key server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
location /ajaxApi/ {
proxy_pass http://127.0.0.1:8082/; #代理后臺請求
}
location /wss/ {
proxy_pass http://wsbackend; #代理websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
重啟nginx
nginx -s reload