1. 程式人生 > >Nginx 配置HTTPS 與Node.js 配置HTTPS方法

Nginx 配置HTTPS 與Node.js 配置HTTPS方法

發生 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方法