nginx 配置 https 證書

https 介紹

1、什麼是 https?

    HTTPS (Secure Hypertext Transfer Protocol) 安全超⽂本傳輸協議,是身披 SSL 外殼的 HTTP。HTTPS 是⼀種通過計算機⽹絡進⾏安全通信的傳輸協議,經由 HTTP 進⾏通信,利⽤ SSL/TLS 建⽴全信道,加密數據包。

2、爲什麼使用 https?

HTTPS 協議是由 SSL+HTTP 協議構建的可進⾏加密傳輸、身份認證的⽹絡協議,要⽐ HTTP 協議安全,可防⽌數據在傳輸過程中被竊取、 改變,確保數據的完整性。

3、https 在整個 OSI 五層架構模型中的位置

4、SSL 的機制流程

1、客戶端向服務端發起請求
2、服務端將自己的公鑰證書發送給客戶端瀏覽器
3、客戶端瀏覽器會內置一些常見的CA機構,因此客戶端收到服務端發來的證書會進行驗證
    3.1 如果發現發來的公鑰證書認證機構不是該瀏覽器內置的CA機構,那麼就發出警告
    3.2 如果符合該瀏覽器內置的CA機構,那麼就進行下一步
4、客戶端隨機生成一個會話密鑰,並將會話密鑰通過公鑰加密以後發給服務端
5、服務端收到 以後進行解密得到會話密鑰
6、接下來通過會話祕密通信

通過上述握手機制可以知道:

    1、HTTPS 通信的過程既有對稱加密也有非對稱加密

    2、非對稱加密用於傳輸會話密鑰,後續通信採用對稱加密

    3、對於不同的瀏覽器其所認可的 CA 機構可能是不一樣的,因此具體可以接受什麼機構的 CA 證書由瀏覽器廠商決定。

接下來開始正式的 nginx 配置 https 的環節啦!!!!

第一階段:我們需要申請 https 的證書,記住一定要申請正規機構的 https 證書,如果是自己通過不明軟件生成的 https 證書,那麼瀏覽器可能會拒絕用戶訪問這些網址,比如一些色情賭博網址證書就是不明機構頒佈的證書。

注意:申請證書前一定要有自己的域名,因爲證書是和域名綁定在一塊的!!!!

1、通過阿里雲申請證書【申請證書需要審覈,審覈過程 可能需要一兩天】

2、審覈通過後在阿里雲上下載自己的證書

3、將我們下載的 https 證書上傳到 linux 服務器上

這裏我是將證書上傳到 linux 服務器的 /usr/local/software/key 目錄下

第二階段:配置 nginx

1、刪除原來的 nginx,重新安裝帶 ssl 模塊的 nginx

rm -rf /usr/local/nginx
#進入最初上傳nginx的文件夾中執行:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
#編譯
make
#安裝
make install

2、修改 nginx.conf 增加 ssl 證書配置

server {
        listen       443 ssl;
        #域名TODO
        server_name  16web.net;
        #證書在當前linux的位置TODO
        ssl_certificate      /usr/local/software/biz/key/4383407_16web.net.pem;
        ssl_certificate_key  /usr/local/software/biz/key/4383407_16web.net.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }

訪問測試

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/PaXQAto4BnzlywiVgGeSwA