1. 程式人生 > 其它 >uniapp做https證書雙向認證(openssl)

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

本文主要參考了:

https://www.cnblogs.com/xiao987334176/p/11041241.html

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

 

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