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