微信小程序在安卓上 SSL 报错的问题
开发工具上和 iOS 真机上访问 api 都是正常的,在安卓上提示如下错误:
request:fail ssl hand shake error
尝试在安卓的浏览器中访问 api 地址,提示“该证书并非来自可信的授权中心
”,于是感觉应该是 SSL 证书的问题。
SSL 证书是通过 Let's Encrypt 申请的,部署在阿里云 SLB 上。
通过https://www.ssllabs.com/ssltest/index.html 测试,TLS1.0、TLS1.1、TLS1.2 都是支持的,但有如下提示
This server's certificate chain is incomplete. Grade capped to B.
于是重新查看了下 Let's Encrypt 生成的证书文件,想起来在阿里云 SLB 的证书填写的是cert.pem
的内容,没有包含中间证书。于是重新填写fullchain.pem
里的内容,问题解决。
下面是 Let's Encrypt 生成的证书文件及其内容:
文件名 | 内容 |
---|---|
cert.pem | 服务端证书 |
chain.pem | 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书 |
fullchain.pem | 包括了 cert.pem 和 chain.pem 的内容 |
privkey.pem | 证书的私钥 |
评论区