uniapp做https證書雙向認證(openssl)


本文主要參考了:

https://ask.dcloud.net.cn/article/39567

https://blog.csdn.net/weixin_34387468/article/details/91855502

 

我主要使用openssl工具來生成的https證書,但是網上大多數是用keytool。其實最重要的是設置正確的SAN信息。(這里介紹了SAN設置)。

生成正確SAN信息的證書,首先要生成3對證書,一個是根證書,用來簽發子證書。一個server證書,用來放服務器端。一個client證書,用來放到客戶端。

然后將server和client的證書,使用根證書簽發。

 

# CA根證書
openssl req -new -nodes -keyout ca.key -out ca.csr -days 3650 -config ./openssl.cnf
# server證書
openssl req -new -nodes -keyout server.key -out server.csr -days 3650 -config ./openssl2.cnf
# client證書
openssl req -new -nodes -keyout client.key -out client.csr -days 3650 -config ./openssl2.cnf

# 查看證書 是否帶san Subject Alternative Name字段是否有值
# csr格式
openssl req -text -noout -in server.csr
# crt格式
openssl x509 -text -noout -in client.crt

# 簽名 帶SAN簽名
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -extfile ./openssl2.cnf -extensions v3_req
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365 -extfile ./openssl2.cnf -extensions v3_req

 

另外附上證書各種格式轉換命令

# 轉P12 (uniapp需要)
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -name "client" 

#  crt轉pem
openssl x509 -in client.crt -out client.pem -outform PE

#  crt轉cer
openssl x509 -in server.crt -out server.cer -outform der
openssl x509 -in client.crt -out client.cer -outform der

# 轉der (ios需要)
openssl x509 -in client.crt -outform der -out client.der
# curl 測試證書命令:
curl --cacert ca.crt --cert client.crt --key client.key --tlsv1.2 --insecure https://gateway.xxx.cn/api/_sys/health

 

看別人踩坑,鋪平自己的路,歡迎關注猿界汪汪隊;


免責聲明!

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



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