Nginx配置SSL和WSS步驟介紹

前言

近期,由於要發佈微信小程序,小程序的發佈必須使用已備案的服務器域名及https的請求方式,之前已經備案過一臺服務器瞭,此次小程序的後臺服務部署在另一臺服務器上,又不想重新部署後臺服務,所以想到在已經備案過的服務器上安裝Nginx並配置SSL,通過Nginx反向代理到另一臺服務器。

一.Nginx安裝

筆者使用的是騰訊雲服務器Centos 7.5, 安裝教程網上有很多,筆者這裡也是根據網上的教程進行一個記錄。主要安裝過程中需要配置添加Nginx的SSL模塊。如已成功安裝可跳過。

1.下載Nginx

下載地址:Index of /download/

下載完成傳輸到服務器上或者也可通過wget命令下載:

wget http://nginx.org/download/nginx-1.9.0.tar.gz

2.安裝依賴

1)安裝gcc-c++編譯器

yum install gcc-c++
yum install -y openssl openssl-devel

2)安裝pcre包

yum install -y pcre pcre-devel

3)安裝zlib包

yum install -y zlib zlib-devel

3.編譯安裝Nginx

1)解壓安裝包

tar -zvxf nginx-1.9.0.tar.gz

2)切換至nginx目錄,配置nginx,添加ssl模塊

cd nginx-1.9.0
./configure --with-http_ssl_module

./configure –with-http_ssl_module必須配置,筆者第一次安裝時直接使用瞭默認配置導致配置SSL證書時啟動報錯。

3)編譯安裝

makemake Install

4)查找安裝路徑

whereis nginx

5)切換至安裝目錄下,並進入sbin目錄,啟動nginx

cd /usr/local/nginx/sbin./nginx

6)查看nginx是否啟動成功

二.SSL配置

1)獲取證書

筆者這裡使用的是騰訊雲,可在騰訊雲申請免費證書,並下載nginx版本

 2)將下載得到的所有證書文件上傳至服務器上,放置在nginx的conf目錄下(與配置文件同級)。

3)進入nginx.conf文件,配置ssl信息

 
#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       443;
        # 證書綁定的域名
        server_name  xxxxx;
	    # 證書文件名稱,親測這裡使用.pem和.crt的證書文件都可以
	    ssl_certificate xxxx.pem;
        # 由於版本問題,部分版本配置文件需加上ssl on
	    ssl on;
	    #私鑰文件名稱
	    ssl_certificate_key xxx.key;
        ssl_session_timeout 5m;
	    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
	    ssl_prefer_server_ciphers on;
        location / {
            root   html;
            index  index.html index.htm;
        }
 
        #error_page  404              /404.html;
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
	location /ctp/{
        # 填寫要轉發的服務器地址和端口
        proxy_pass http://ip:port;
	}
      
    }
}

詳細證書配置教程可參考騰訊雲:SSL 證書 Nginx 服務器 SSL 證書安裝部署 – 證書安裝 – 文檔中心 – 騰訊雲

三.WSS配置

nginx配置websocket的代理比想象種簡單很多,使用HTTP的Upgrade協議頭就能將連接從HTTP連接升級到WebSocket連接,具體配置如下:

location /ctp/{
            # 填寫要轉發的服務器地址和端口
            proxy_pass http://ip:port;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'Upgrade';
        }

到此這篇關於Nginx配置SSL和WSS步驟介紹的文章就介紹到這瞭,更多相關Nginx配置SSL和WSS內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: