因為騰訊雲的網站備案遲遲沒有批下來,因此使用了朋友在阿里雲的域名yk,我則申請了一台阿里雲服務器,並將域名解析映射至該服務器。SSL證書則是在騰訊雲上申請的,使用了Apache文件夾中的文件,放置在cowboy的priv/ssl目錄下,1_root_bundle為根證書,2_yk.crt為網站證書,3_yk.key為密鑰。一切布置妥當后,在PC的chrome、android的chrome、蘋果手機的微信等環境中均可以正常訪問,但是在android的微信中訪問時服務器報如下錯誤:
client alert Fatal: unknown certificate(46)
RFC中的解釋是:
certificate_unknown
Some other (unspecified) issue arose in processing the
certificate, rendering it unacceptable.
搜索到一些信息,如:
https://cweiske.de/tagebuch/https-client-cert-unknown.htm
也使用wireshark抓包排查了流程,但是由於對SSL不是非常了解,始終沒有找到進一步的原因和方向。后來向一些朋友請教,整理了思路。對於這種問題,首先要到SSL測試網站上測試具體的問題:
https://www.myssl.cn/tools/check-server-cert.html
經過測試,是因為服務器缺失中間證書導致的,可以在上述網站的“證書分析”欄生成中間證書。但是實際嘗試后,檢測結果依然是缺少中間證書。正在納悶時,恰好在今天騰訊雲的網站備案通過了,於是在騰訊雲上重新申請了SSL證書,開通了騰訊雲域名,SSL測試網站檢測通過。此時在android機的微信中也可以正常訪問了。
更進一步原因尚未深入調查,謹以此記。