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 StandardPKCS#10:Certification Request StandardPKCS#12:Personal Information Exchange Syntax StandardX.509:是常見通用的證書格式。所有的證書都符合為Public Key Infrastructure (PKI) 制定的 ITU-T X509 國際標準。PKCS#7:常用的后綴是: .P7B .P7C .SPCPKCS#12:常用的后綴有: .P12 .PFXX.509:DER 編碼(ASCII)的后綴是: .DER .CER .CRTX.509:PAM 編碼(Base64)的后綴是: .PEM .CER .CRT.cer/.crt:是用于存放證書,它是2進制形式存放的,不含私鑰。.pem:跟crt/cer的區別是它以Ascii來表示。pfx/p12:用于存放個人證書/私鑰,他通常包含保護密碼,2進制方式p10:是證書請求p7r:是CA對證書請求的回復,只用于導入p7b:以樹狀展示證書鏈(certificate chain),同時也支持單個證書,不含私鑰。?
轉載于:https://www.cnblogs.com/dannylinux/p/10790772.html
總結
以上是生活随笔為你收集整理的nginx配置https双向验证(ca机构证书+自签证书)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10华硕atk驱动怎么安装_正版w
- 下一篇: Qt开发人机象棋