nginx配置https雙向驗證(ca機構證書+自簽證書)


nginx配置https雙向驗證(ca機構證書+自簽證書)


nginx配置https雙向驗證

服務端驗證(ca機構證書)

客戶端驗證(服務器自簽證書)

本文用的阿里雲簽發的免費證書實驗,下載nginx安裝ssl,文件夾有兩個文件

這兩個文件用於做服務器https驗證

配置如下:

自簽證書步驟如下:

ca根證書生成

創建ca私鑰

openssl genrsa -out ca.key 2048

生成ca證書

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

客戶端證書生成

創建客戶端私鑰

openssl genrsa -out client.pem 2048 
openssl rsa -in client.pem -out client.key

生成簽發請求

openssl req -new -key client.pem -out client.csr

使用ca證書進行簽發

openssl x509 -req -sha256 -extfile /etc/pki/tls/openssl.cnf -extensions v3_req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 36500 -out client.crt

驗證簽發證書是否正確

[root@danny ca]# openssl verify -CAfile ca.crt client.crt
client.crt: OK

制作p12證書(導入瀏覽器)

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

操作結束后目錄文件

[root@danny ca]# ls
ca.crt  ca.key  ca.pem  ca.srl  client.crt  client.csr  client.key  client.p12  client.pem

驗證,導出client.p12點擊安裝至瀏覽器,重啟瀏覽器。驗證過程截圖如下:

未開啟雙向認證ssl_verify_client on時(客戶端可以直接https訪問)

開啟ssl_verify_client on但是沒有安裝客戶端證書時

安裝證書並重啟瀏覽器訪問

https證書管理中可看到已導入

 確認即可訪問

補充1:如果使用ca機構頒發的證書ssl_certificate,ssl_certificate_key 使用ca機構頒發的證書,客戶端證書ssl_client_certificate使用自己生成的證書即可。

 

補充2:在阿里雲上申請的https證書的是pem格式,轉成cer,crt

openssl x509 -outform der -in xxx.pem -out xxx.cer
openssl x509 -outform der -in xxx.pem -out xxx.crt

補充3:crt文件轉換為pem文件

openssl x509 -in xxx.crt -out xxx.pem

補充4:生成安卓所有bks包(windos的jdk環境命令行,具體步驟可百度)

keytool -importcert -keystore client.bks -file client.crt -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

補充5:常見證書格式說明

復制代碼
PKCS#7:Cryptographic Message Syntax Standard

PKCS#10:Certification Request Standard

PKCS#12:Personal Information Exchange Syntax Standard

X.509:是常見通用的證書格式。所有的證書都符合為Public Key Infrastructure (PKI) 制定的 ITU-T X509 國際標准。

PKCS#7:常用的后綴是: .P7B .P7C .SPC

PKCS#12:常用的后綴有: .P12 .PFX

X.509:DER 編碼(ASCII)的后綴是: .DER .CER .CRT

X.509:PAM 編碼(Base64)的后綴是: .PEM .CER .CRT

.cer/.crt:是用於存放證書,它是2進制形式存放的,不含私鑰。

.pem:跟crt/cer的區別是它以Ascii來表示。

pfx/p12:用於存放個人證書/私鑰,他通常包含保護密碼,2進制方式

p10:是證書請求

p7r:是CA對證書請求的回復,只用於導入

p7b:以樹狀展示證書鏈(certificate chain),同時也支持單個證書,不含私鑰。
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM