起因:开发反馈api接口无法在微信公众号验证通过
排查问题:
由于一开始是http 301 到 https,所以使用http和https的方法验证无法通过,
然后接触了301调整开启了80 443都能直接访问接口,得到的结果是http可以校验通过,那么得到结论是服务没有问题,可能出现的问题就是https
于是使用17ce https://17ce.com 站点测试了全球访问情况基本都可以正常返回200,还是没找到问题,
后来使用myssl https://myssl.com站点去测试,测试报告是证书不可信,出了疑问,浏览器访问没有报错,为啥检测会有问题
既然是证书问题,最简单就是换个证书提供商,果然换了证书,https可以通过了
脑海出现了几个疑问点(-107 问题出现可能原因:1.网络不通,2.dns解析问题,3.内网nat问题,3.泛证书证书问题或者需要使用单域名证书才行)
后来看了Let's Encrypt的相关公告,才发觉可能是微信公众号的检测机制的根域名证书没有更新或者是我证书根证书版本太旧:
对于看到 AWS 服务(包括 AWS Lambda、AWS Elastic Beanstalk、Amazon OpsWorks 和 Elastic MapReduce (EMR))影响的客户,我们正在努力对受影响的服务应用必要的修复程序。我们已经为受影响的 Amazon Linux 发行版发布了更新的 RPM。运行 AL 2012 或 AL2 的客户可以使用以下命令从 CDN 进行更新:
Amazon Linux 1: sudo yum install https://cdn.amazonlinux.com/patch/ca-certificates-update-2021-09-30/ca-证书-2018.2.22-65.1.24.amzn1.noarch.rpm Amazon Linux 2: sudo yum install https://cdn.amazonlinux.com/patch/ca-certificates-update-2021-09-30/ca-certificates- 2021.2.50-72.amzn2.0.1.noarch.rpm
这些命令安装替换本地信任存储的 RPM。如果出于某种原因希望就地修改系统,则可以使用以下命令:
Amazon Linux 1: sudo sed -i'' '/Alias: DST Root CA X3/,/No Rejected Uses./d' / usr/share/pki/ca-trust-source/ca-bundle.trust.crt sudo update-ca-trust Amazon Linux 2: sudo sed -i'' '/DST Root CA X3/,/\[p11-kit- object-v1\]/d' /usr/share/pki/ca-trust-source/ca-bundle.trust.p11-kit sudo update-ca-trust
将 RPM 上传到存储库仍在进行中,因此启动的新实例不会自动更新。我们正在积极致力于发布更新的 Amazon Linux AMI。发布这些 AMI 后,发布自定义 AMI(ECS、EKS、EMR、Elastic Beanstalk)的服务将开始使用其 AMI 的更新版本。
一些运行 .NET 3.1 和 Ruby 2.7 的 Lambda 客户遇到与运行 1.1.0 之前的 Open SSL 版本相关的提升错误。我们正在努力解决这个问题。
造成的影响:
服务端:是用的是Let's Encrypt 3个月证书,可能导致低版本的ca-certificates的客户端无法https验证通过,导致无法访问
客户端:低版本的ca-certificates的客户端无法https验证通过使用Let's Encrypt 3个月证书的网站
类似使用Let's Encrypt 证书的站点:清华大学开源软件镜像站 https://mirrors.tuna.tsinghua.edu.cn/ 未更新ca-certificates的客户端,无法wget成功 yum install ca-certificates 更新了ca根证书,即可wget成功