微信小程序一直转转不请求接口

最近小程序开发测试环境一直转转不请求接口,iOS可以正常访问,安卓无法访问,提示: request:fail -2:net::ERR_FAILED 检查后发现是因为没有配置中间人证书。由于测试环境我们使用的是acme申请let's encrypt的泛域名证书。

由于我们的DNS解析托管在DNSPOD,因此就可以使用

export DP_Id="43211"     #DNSPOD APP_ID
export DP_Key="123123ss123112e21e332e432e32e"  #DNSPOD KEY
acme.sh --issue --dns dns_dp -d abc.cn -d *.m.abc.cn -d *.abc.cn    #域名,这里生成 abc.cn *.abc.cn *.t.abc.cn的泛影证书

还有托管在阿里云的解析就是

export Ali_Key="kkkkkkeeeeeyyyyyyyyy"
export Ali_Secret="ssssseeeeeccccrrrrreeeeetttttt"
acme.sh --issue --dns dns_ali -d xyz.cn -d *.xyz.cn

就可以生成了。

在~/.acme目录下就生成了对应证书的目录
比如我的域名是abc.cn,则在~/.acme/abc.cn目录下就有
ca.cer fullchain.cer abc.cn.cer abc.cn.conf abc.cn.csr abc.cn.csr.conf abc.cn.key
对应的文件,之前我用的是abc.cn.cer和abc.cn.key

nginx的配置就是

    #ssl_certificate      host/keys/abc.cn.cer;      #使用这个文件小程序无法使用
            ssl_certificate      host/keys/fullchain.cn.cer;   #使用这个正常访问
    ssl_certificate_key  host/keys/abc.cn.key;

但是这样之后就发现小程序不行,必须要使用fullchain.cer这个证书。
我们可以看到fullchain.cer和abc.cn.cer就缺了个ca.cer

当然如果你不知道你的ca.cer到底是多少你可以到https://www.myssl.cn/tools/downloadchain.html把你的证书文件复制进去,即可知道你的中间人证书。

上一篇:SuperMap iServer8C证书过期如何解决


下一篇:记一次nginx部署https访问出现证书链不全的问题