微信小程序在安卓上 SSL 报错的问题

240 字
2 分钟
...阅读
...评论

开发工具上和 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证书的私钥
评论区
Copyright © Bean Deng