Nginx配置https雙向認證

2022-08-09 09:36:13 字數 2268 閱讀 5099

1.      前期的準備工作:

安裝openssl和nginx的https模組

cd  ~/mkdir ssl

cd ssl

mkdir democa

cd democa

mkdir newcerts

mkdir private

touch index.txt

echo '01

' > serial

2.      製作ca證書(這個是信任的起點,根證書,所有其他的證書都要經過ca的私鑰簽名)。

生成ca

私鑰: ca.key

命令:openssl genrsa -des3 -out ca.key 2048

這樣是生成

rsa私鑰,

`des3`

演算法,openssl

格式,2048

位強度。

`ca.key`

是金鑰檔名。為了生成這樣的金鑰,需要乙個至少四位的密碼。

另外可以通過以下方法生成沒有密碼的

key:

openssl rsa -in ca.key -out ca_decrypted.key

生成ca

根證書的公鑰

ca.crt

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

3.      製作**的https證書,並用ca簽名認證。

假設我們需要為 test.com 網域名稱製作證書,先生成 test.com的證書私鑰 test.com.pem。

命令:

openssl genrsa -des3 -out test.com.pem 1024

生成無密碼的私鑰:

openssl rsa -in test.com.pem -out test.com.key

生成 csr 簽名請求:

openssl req -new -key test.com.pem -out test.com.csr

這裡需要輸入國家,地區,組織,email等。最重要的是**common name**,可以寫你的名字或者網域名稱。如果為了 https 申請,這個必須和網域名稱一樣,即,這裡要寫test.com,否則會引發瀏覽器警報,這裡可以用 *.test.com 來做泛網域名稱證書。

最後要用ca證書進行簽名:

openssl ca -policy policy_anything -days 1460 -cert ./democa/ca.crt -keyfile ./democa/ca.key -in test.com.csr -out test.com.crt

把 ca.crt 的內容追加到 test.com.crt後面,因為有些瀏覽似乎不支援:

cat democa/ca.crt>> test.com.crt

準備客戶端私鑰:

openssl genrsa -des3 -out clent.pem 2048

生成客戶端證書請求:
openssl req -new -key client.pem -out client-req.csr

ca簽名客戶端證書請求

openssl ca -policy policy_anything -days 1460 -cert ca.crt  -keyfile ca.key -in client-req.csr -out client.crt

客戶端證書crt轉換為 pkcs #12格式(

全稱應該叫做

personal information exchange

,通常以

p12作為字尾

):

openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12

點選剛才生成的p12檔案輸入證書的密碼將安裝。

5.      nginx配置

server       

}

6.      測試

當將一切都設定好,將

nginx

啟動成功後,就可以開啟

ie來訪問了,第一次訪問,瀏覽器會詢問雙向認證時使用的證書,類似下圖

注意:伺服器和客戶端的在輸入common server時,不要重名

nginx 配置https雙向認證

參考部落格 製作ca私鑰 openssl genrsa out ca.key 2048 製作ca公鑰 根證書 openssl req new x509 days 3650 key ca.key out ca.crt 伺服器端證書 製作伺服器私鑰 openssl genrsa out server.p...

Aandroid中https請求的雙向認證

aandroid中https請求的雙向認證 雙向認證 雙向證書驗證 首先對於雙向證書驗證,也就是說,客戶端有自己的密匙,並持有服務端的證書,服務端給客戶端傳送資料時,需要將服務端的證書發給客戶端驗證,驗證通過才執行傳送資料,同樣,客戶端請求伺服器資料時,也需要將自己的證書發給服務端驗證,通過才允許執...

使用Nginx配置客戶端實現SSL雙向認證

1.ca 與自簽名 建立相關目錄 mkdir ssl cd ssl製作 ca 私鑰 openssl genrsa out ca.key 2048製作 ca 根證書 公鑰 openssl req new x509 days 3650 key ca.key out ca.crt2.伺服器端證書 製作服務...