簡單介紹
nginx是目前最新的高性能web服務器,和傳統的apache服務器相比,特別在大量的客戶并發連接下,性能要提高10倍以上。很多大型的php網站都采用了nginx服務器。雖然nginx采用是linux2.6內核和epull架構的網絡i/o模型,但在使用上和apache還是比較相似,是apache一個非常不錯的替代產品。
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
最后打開網頁驗證