certificate unknown(46) - 中间证书问题排查
因为腾讯云的网站备案迟迟没有批下来,因此使用了朋友在阿里云的域名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机的微信中也可以正常访问了。
更进一步原因尚未深入调查,谨以此记。