配置nginx伺服器使用https協議,需要為伺服器指定以下引數:
1.證書, 用於客戶端認證傳遞公鑰用於資料加密
2.私鑰,用於解密客戶端的資料
3.tls協議相關: tls協議版本號,加密套件
4.伺服器相關: 埠號,server_name
假定我們需要為網域名稱配置ssl證書。
最簡單的配置需要乙個金鑰檔案和乙個使用該金鑰的證書,步驟如下:
}}如下:
server
listen 443 ssl
指定以tls/ssl協議處理來自443埠的請求;
server_name
指定客戶端使用tls擴充套件字段(見clienthello)中的伺服器名稱匹配該伺服器;
ssl_certificate
和ssl_certificate_key
指定證書和私鑰;
ssl_protocols
指定能夠支援與客戶端進行通訊的所有tls協議版本;
ssl_ciphers
指定伺服器能夠支援的客戶端加密套件;
nginx可以配置多個伺服器使用同乙個證書,只要為這個證書的subjectaltname
中加上相應的網域名稱就可以被客戶端信任。
在為證書配置subjectaltname
時可以使用萬用字元名稱:*.baidu.com
只能匹配www.baidu.com
,不能匹配baidu.com
和x.www.baidu.com
,即只是一級匹配。
配置如下:
ssl_certificate common.crt;
ssl_certificate_key common.key;
server
server
nginx會根據客戶端提供的servername
選擇合適的伺服器。
server
server
上面的配置能否生效取決於客戶端,如果客戶端未使用servername
擴充套件,則nginx無法區分到底選擇哪個證書,因此它使用預設證書,即第乙個伺服器的配置。
如果客戶端使用了servername
擴充套件,則nginx根據其選擇對應的伺服器。
當使用open
ssl測試nginx伺服器時,由於nginx伺服器是以server_name
作為伺服器查詢,所以需要指定-servername
選項。
如下:
openssl s_client -connect www.baidu.com:443 -servername www.baidu.com
當使用curl測試時,需要指定-h 'host: www.baidu.com'
nginx 配置https證書
安裝證書 檔案說明 1.證書檔案214467769540415.pem,包含兩段內容,請不要刪除任何一段內容。2.如果是證書系統建立的csr,還包含 證書私鑰檔案214467769540415.key。2 開啟 nginx 安裝目錄下 conf 目錄中的 nginx.conf 檔案,找到 3 將其修...
nginx配置https協議
一 我們用的是阿里雲的伺服器,所以直接在管理中心生成網域名稱對應的.pem和.key檔案,放在伺服器指定資料夾內,我放在cert資料夾內 二 開啟 etc nginx nginx.conf,以下是寫在http 內 upstream test server 設定檢視nginx狀態的位址 locatio...
nginx 配置 https 服務
一 環境 1 centos 7 2 nginx 安裝前保證自己的nginx處於開啟的狀態並且可通過網域名稱訪問80埠即可。我nginx一般是用作反向 的,所以在生成證書前不需要單獨配置新的網域名稱服務,使用安裝後預設的配置服務即可。二 證書使用 let s encrypt 安裝證書管理客戶端 1 w...