一、加密方式
1、對稱加密
所謂對稱加密即:用戶端使用一串固定的秘鑰對傳輸内容進行加密,服務端使用相同的秘鑰進行解密。
2、非對稱加密
SSL證書(遵守 SSL協定,由受信任的數字證書頒發機構CA,在驗證伺服器身份後頒發,具有伺服器身份驗證和資料傳輸加密功能。是公鑰+私鑰一對秘鑰串)
非對稱加密即用戶端使用公鑰對傳輸内容進行加密,服務端使用私鑰對傳輸内容進行解密
準備材料:
伺服器1台:推薦
阿裡雲伺服器(選擇Linux系統)
SSL證書1個:推薦
阿裡雲ssl證書(便于管理)
二、http與https
http是資料在網絡上進行明文傳輸,不安全,但解析效率高(不用加解密);https是加密傳輸,如果使用對稱加密,用戶端與服務端秘鑰固定,加解密效率不會有很大開銷,但存在秘鑰洩露風險,不夠安全;如果使用非對稱加密,用戶端使用公鑰,服務端使用私鑰,加解密算法開銷大,性能成本高,效率較對稱加密要低,但具有較高的安全性。
實際生産環境中,https是使用了非對稱加密與對稱加密相結合的方式。首先使用非對稱加密将用戶端随機生成的對稱秘鑰發送到服務端(安全傳輸到服務端),之後用戶端和服務端之間的加解密使用對稱秘鑰。如下圖所示

三、nginx配置https
1、配置前提
nginx是否已經啟用https子產品,啟動nginx并執行nginx -V檢視,如下:
Nginx配置https隻需要兩個檔案。一個是浏覽器證書(内含公鑰,供浏覽器加密使用),一個是私鑰(供伺服器解密使用)
server.crt和server.key可以自己去證書頒發機構購買商業證書。也可以自己使用程式自己生成一份。此處自簽一份證書。
2、自簽證書
(1)建立伺服器私鑰,需要輸入一個密碼
openssl genrsa -des3 -out server.key 4096
(2)建立簽名請求的證書(CSR)
openssl req -new -key server.key -out server.csr
(3)在加載SSL支援的Nginx并使用上述私鑰時除去必須的密碼
openssl rsa -in server.key -out server_nopass.key
(4)最後标記證書使用上述私鑰和CSR
openssl x509 -req -days 365 -in server.csr -signkey server_nopass.key -out server.crt
最後生成的證書檔案
3、配置證書
在nginx中的conf配置檔案中的Server子產品加入:
ssl_certificate /usr/local/nginx/server.crt;
ssl_certificate_key /usr/local/nginx/server_nopass.key;