天天看點

nginx配置ssl證書實作https加密請求詳解

一、加密方式

1、對稱加密

所謂對稱加密即:用戶端使用一串固定的秘鑰對傳輸内容進行加密,服務端使用相同的秘鑰進行解密。

2、非對稱加密

SSL證書(遵守 SSL協定,由受信任的數字證書頒發機構CA,在驗證伺服器身份後頒發,具有伺服器身份驗證和資料傳輸加密功能。是公鑰+私鑰一對秘鑰串)

非對稱加密即用戶端使用公鑰對傳輸内容進行加密,服務端使用私鑰對傳輸内容進行解密

準備材料:

伺服器1台:推薦

阿裡雲伺服器

(選擇Linux系統)

SSL證書1個:推薦

阿裡雲ssl證書

(便于管理)

二、http與https

http是資料在網絡上進行明文傳輸,不安全,但解析效率高(不用加解密);https是加密傳輸,如果使用對稱加密,用戶端與服務端秘鑰固定,加解密效率不會有很大開銷,但存在秘鑰洩露風險,不夠安全;如果使用非對稱加密,用戶端使用公鑰,服務端使用私鑰,加解密算法開銷大,性能成本高,效率較對稱加密要低,但具有較高的安全性。

實際生産環境中,https是使用了非對稱加密與對稱加密相結合的方式。首先使用非對稱加密将用戶端随機生成的對稱秘鑰發送到服務端(安全傳輸到服務端),之後用戶端和服務端之間的加解密使用對稱秘鑰。如下圖所示

nginx配置ssl證書實作https加密請求詳解

三、nginx配置https

1、配置前提

nginx是否已經啟用https子產品,啟動nginx并執行nginx -V檢視,如下:

nginx配置ssl證書實作https加密請求詳解

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           

最後生成的證書檔案

nginx配置ssl證書實作https加密請求詳解

3、配置證書

在nginx中的conf配置檔案中的Server子產品加入:

ssl_certificate /usr/local/nginx/server.crt;

ssl_certificate_key /usr/local/nginx/server_nopass.key;

nginx配置ssl證書實作https加密請求詳解