[2018-10-01 22:40:53 最后更新]
nginx 下的非阿里云之西部数据 https 证书配置示例2 -- 安卓上的微信小程序访问不了苹果上可以的解决方法
根据上篇文章配置好 https 后,pc 电脑端访问是没任何问题的。用 iphone 访问也正常。
但晚上时有用户来说安卓版本的微信小程序访问不了,但同时iphone 上的微信是正常的。我知道微信小程序其实用的还是浏览器功能,我打开浏览器直接访问,
果然弹出了 https 证书警告,所以是不行的。我又仔细去西部数据网站看了它的配置说明,说是要把 crt 文件的内容复制到 cer 文件的后面
https://www.west.cn/faq/list.asp?unid=1439
开源免费证书会有三个文件我是知道的,只是一直用两个就能用了,所以一直没管过 crt 文件是干嘛的。同时因为怀疑西部数据的 TrustAsia DV 证书 有问题,
结果在
https://www.v2ex.com/amp/t/404160
有网友说 “请补全证书链即可”,于是搜索 "补全证书链" 关键字,找到了很多自动补全网站,说是这样做的目的是要补充上中级证书,中级证书我是知道的,
就是要一串的证书一起才能证明,可以理解为这个传输用的密码是有一部分是放在了中级证书那里(当然实际上只是验证)。但是没想到这个中级证书可以这样补全.
例如
https://csr.sslaaa.com/get_chain
处的说明。
我把 cer 文件放进去补全,神奇的一幕发生了,生成的内容居然和西部数据说明中的把 crt 放到后面的结果是一样的!
好了,原来那个 crt 就是中级证书。合并证书就是把两者的 base64 内容放在同一个文件中就行了!!!
这样处理后,果然 OK 了。
最后,要注意的是,两个证书间的
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
不能删除,否则是会报错的。另外,如果工作不正常,请在分隔的地方多加几个回车换行。
--------------------------------------------------
ps. 我用的服务器是 nginx