1. 程式人生 > 其它 >《程式設計師修煉之道:從小工到專家》第五章讀書筆記

《程式設計師修煉之道:從小工到專家》第五章讀書筆記

一、Nginx新增SSL模組

1. 檢查是否存在ssl模組

進入到你的nginx安裝目錄下面,進入到目錄的sbin目錄下,我的是/home/nginx/sbin輸入

#注意是大寫的V
./nginx -V 
#也可以不用切到sbin目錄下,直接執行
/home/nginx/sbin/nginx -V


如果出現 (configure arguments: --with-http_ssl_module), 則已安裝。

2. 安裝SSL模組

接下來進入到你的解壓縮後的nginx目錄,注意這裡不是nginx安裝目錄,是解壓縮後的目錄,我的是/home/nginx/backup/nginx-1.19.10/輸入

./configure --prefix=/home/nginx --with-http_stub_status_module --with-http_ssl_module

接下來執行

make
#切記不要執行make install,否則會重新安裝nginx

3. 安裝成功後

上述操作執行完成以後,我的/home/nginx/backup/nginx-1.19.10/目錄下會出現objs資料夾,資料夾記憶體在nginx檔案,如圖:

接下來使用新的nginx檔案替換掉之前安裝目錄sbin下的nginx,注意這裡的替換的時候可以先將之前的檔案備份下,停掉nginx服務

./nginx -s stop #停止nginx服務
#替換之前的nginx
cp /home/nginx/backup/nginx-1.19.10/objs/nginx /home/nginx/sbin

替換完之後,重新啟動Nginx服務。重啟可以使用命令

./nginx -s reload

若使用該命令報錯:

[root-01011-centos sbin]# ./nginx -s reload
ngx_http_fastdfs_set pid=1393
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

解決:

 ./nginx -c /home/nginx/conf/nginx.conf
#指定目錄的配置檔案 nginx.conf

成功之後,再次進入到nginx安裝目錄下,檢視ssl是否成功

#注意這裡是大寫的V,小寫的只顯示版本號
./nginx -V  
#可以看到這裡出現了configure arguments: --with-http_ssl_module   證明已經安裝成功

二、Nginx配置Https

1. 生成SSL證書:

方式一:可以自己生成一個,會產生server.crt server.csr server.key三個檔案,但是自己生成的頒發機構不被瀏覽器信任,可以用,但是微信小程式訪問就不能用。生成方式參考:自定義生成SSL證書
方式二:去阿里雲上申請一個免費證書,申請方式參考:阿里雲申請證書,申請之後下載Nginx證書
最終我們需要用到server.crt server.key檔案 阿里雲上下載的.crt檔案字尾名為.pem可以直接更改字尾名為.crt

2.Nginx配置https:

在nginx.conf檔案中新增配置,配置完成之後重啟:

  • 其中server_name要和證書申請時填寫的域名保持一致。
  • .crt檔案和.key檔案路徑要寫對.
server{
       listen  443 ssl;
       server_name  ip 域名;
       ssl_certificate /home/nginx/conf/cert/server.crt;
       ssl_certificate_key /home/nginx/conf/cert/server.key;
       ssl_session_cache shared:SSL:1m;
       ssl_session_timeout 5m;
       ssl_ciphers HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers on;

       location /wx-api/ {
            proxy_next_upstream http_502 http_504 error timeout invalid_header;
            proxy_pass http://wx-api/;
            expires -1;
        }
        location / {
            root   /home/nginx/html;
            index  index.html index.htm;
        }
    }

3.驗證證書是否有效

以上SSL模組以及nginx.conf檔案配置好了以後,可以使用工具,測試是否成功,工具連結如下:[工具連結】(https://www.myssl.cn/tools/check-server-cert.html)

本文參考:

 1.Nginx新增SSL模組:https://blog.csdn.net/weixin_46089066/article/details/110470409