1. 前期的準備工作:
安裝openssl和nginx的https模組
cd ~/mkdir sslcd 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.伺服器端證書 製作服務...