Nginx 配置HTTPS 與Node.js 配置HTTPS方法
阿新 • • 發佈:2018-03-03
發生 win var 路徑 上傳 還需要 centos 重啟 我沒
前段時間公司網站要求加上HTTPS安全CA證書,公司服務器全是阿裏雲服務器,並且配有負載均衡,所以選擇直接在阿裏雲購買CA證書,阿裏雲有一種證書可以免費試用一年,決定申請此證書,阿裏雲證書需要驗證,阿裏雲有詳細教程
配置之後發現所有在HTTPS訪問的網站下的所有連接都需要是HTTPS訪問,所以還是需要自己進行配置
配置方案記錄一下,方便以後自己配置查找
環境
Centos6.8 Nginx yum安裝
首先要將下載的CA證書上傳到服務器上面 , 然後打開/etc/nginx/conf.d/自己配置文件名.conf
然後將下面代碼添加進去
ssl_certificate /etc/nginx/conf.d/214521058020911.pem;#此處為安全成熟的pem文件需要根據自己的實際情況配置路徑 ssl_certificate_key /etc/nginx/conf.d/214521058020911.key;#同上 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM- SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
添加後如下顯示
server { listen 443; server_name 自己的域名; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { try_files $uri $uri/ /index.php?$query_string; client_max_body_size 1000m; } root 項目目錄; index index.php; ssl_certificate /etc/nginx/conf.d/214521058020981.pem; ssl_certificate_key /etc/nginx/conf.d/214521058020981.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; .....以下省略
然後在後來配置Windows服務器的時候,用的PHPStudy集成環境配置發現還需要加入
SSL on
重啟之後生效。
網站本身需要一個實時數據推送,所以我采用了node.js的socket.io模塊進行推送,然後找到配置方法如下
var http = require(‘http‘); var https = require(‘https‘); var fs = require(‘fs‘); var options = { key: fs.readFileSync(‘./214521058020981.key‘),//配置自己的證書 cert: fs.readFileSync(‘./214521058020981.pem‘)//同上 } var server = https.createServer(options).listen(監聽端口); var io = require(‘socket.io‘)(server);
此為配置方法,引入時用https://自己域名進行引入即可
註意:同一個服務器無法進行node.js和Nginx同時配置HTTPS,因為占用同一個443端口發生沖突,至於是不是可以采用Nginx來為node.js提供Https訪問,我沒試驗
Nginx 配置HTTPS 與Node.js 配置HTTPS方法