Nginx部署SSL證書

2022-10-29 12:00:19
SSL證書介紹
SSL證書是數位憑證的一種,類似於駕駛證、護照和營業執照的電子副本。因為設定在伺服器上,也稱為SSL伺服器證書。
SSL 證書就是遵守 SSL協定,由受信任的數位憑證頒發機構CA,在驗證伺服器身份後頒發,具有伺服器身份驗證和資料傳輸加密功能。
 
SSL認證原理

1.握手協定

握手協定是客戶機和伺服器用SSL連線通訊時使用的第一個子協定,握手協定包括客戶機與伺服器之間的一系列訊息。SSL中最複雜的協定就是握手協定。該協定允許伺服器和客戶機相互驗證,協商加密和MAC演演算法以及保密金鑰,用來保護在SSL記錄中傳送的資料。握手協定是在應用程式的資料傳輸之前使用的。

2.記錄協定

記錄協定在客戶機和伺服器握手成功後使用,即客戶機和伺服器鑑別對方和確定安全資訊交換使用的演演算法後,進入SSL記錄協定,記錄協定向SSL連線提供兩個服務:
(1)保密性:使用握手協定定義的祕密金鑰實現
(2)完整性:握手協定定義了MAC,用於保證訊息完整性

3.警報協定

客戶機和伺服器發現錯誤時,向對方傳送一個警報訊息。如果是致命錯誤,則演演算法立即關閉SSL連線,雙方還會先刪除相關的對談號,祕密和金鑰。每個警報訊息共2個位元組,第1個位元組表示錯誤型別,如果是警報,則值為1,如果是致命錯誤,則值為2;第2個位元組制定實際錯誤型別。
 
SSL證書部署準備工作
1.下載證書
證書下載後解壓縮會看見字尾 .key 和 .pem 的檔案,把這兩個檔案上傳到nginx伺服器上,然後在conf檔案下面建立cert資料夾,把證書拷貝到這個檔案下面。

2.部署證書

./nginx -t 檢視nginx安裝路徑,找到nginx.conf組態檔編輯

在server下面新增

server_name 你的域名地址;

listen 443 ssl;
ssl_certificate conf/cert/.pem;
ssl_certificate_key conf/cert/.key;

3.設定http自動跳轉https

 新增一個server新增以下設定

listen 80;
server_name 你的域名;
rewrite ^(.*)$ https://$host$1;

4.載入nginx設定

./nginx -s reload

最後開啟網頁驗證