目錄
- 簡單介紹
- SSL證書介紹
- SSL認證原理
- 1.握手協議
- 2.記錄協議
- 3.警報協議
- SSL證書部署準備工作
- 1.下載證書
- 2.部署證書
- 3.配置http自動跳轉https
- 4.加載nginx配置
簡單介紹
Nginx是目前最新的高性能Web服務器,和傳統的Apache服務器相比,特別在大量的客戶并發連接下,性能要提高10倍以上。很多大型的PHP網站都采用了Nginx服務器。雖然Nginx采用是Linux2.6內核和epull架構的網絡I/O模型,但在使用上和Apache還是比較相似,是Apache一個非常不錯的替代產品,下面主要介紹一下Nginx部署SSL證書的一些內容。
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
最后打開網頁驗證