Nginx使用SSL模組配置https

徘徊孤狼發表於2020-07-21

背景

開發微信小程式,需要https域名,因此使用Nginx的SSL模組配置https

步驟

一、去域名管理商(如騰訊雲、阿里雲等)申請CA證書

二、在Nginx中配置,一般情況下域名管理商會提供配置文件

  1、把證書和金鑰上傳到伺服器中(所在位置和nginx.conf配置中一致,這裡我直接放在nginx.conf同一目錄下)

  2、配置nginx.conf,如下所示:

  server {
    #https預設地址埠443
    listen 443 ssl;
    #域名
    server_name xx.xxx.com;
    #證書名
    ssl_certificate xxxxxx.crt;
    #金鑰
    ssl_certificate_key xxxxxx.key;
    #session快取
    ssl_session_cache shared:SSL:1m;
    #session有效期
    ssl_session_timeout 30m;
    #加密協議
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    #加密演算法
    ssl_ciphers HIGH:!aNULL:!MD5;
    #伺服器端選擇演算法
    ssl_prefer_server_ciphers on;
    #此處根據自己的系統配置
    location / {
      root html; index index.html index.htm;
    }

  }

三、過載nginx(nginx -s reload),然後訪問配置的域名驗證https的配置。

錯誤

本人nginx安裝目錄為:/usr/local/nginx

配置後,過載nginx報如下錯誤:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/nginx.conf:371

此錯誤是因為nginx未安裝SSL模組,需要安裝配置SSL模組

通過/usr/local/nginx下的configure 配置SSL模組和其他模組資訊,此處需要特別注意,這個方式不是增量新增模組的,會覆蓋原來的配置的,所以需要把原來的配置也加在一起

1、通過nginx -V檢視現在配置,然後關閉nginx(nginx -s stop

2、執行./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --with-http_ssl_module,其中--with-http_ssl_module為SSL模組的配置

3、執行make命令編譯

4、執行完成後會在/usr/local/nginx/objs目錄下生成nginx命令

5、備份/usr/local/nginx/sbin目錄下的nginx命名,然後複製objs目錄下的nginx到sbin目錄下(cp objs/nginx sbin/ ,如果不能複製,可以使用cp -rpf objs/nginx sbin/ 強制複製 )

6、啟動nginx完成SSL模組的配置

 

相關文章