收藏
回答

云托管后端程序向api.weixin.qq.com发送登录请求,报SSL认证错误,该如何解决?

try {
   WxMaJscode2SessionResult result = this.wxService.getUserService().getSessionInfo(code);
   sessionKey = result.getSessionKey();
   openId = result.getOpenid();
} catch (Exception e) {
   e.printStackTrace();
}

本地登录成功!


前段通过wx.login,拿到的code,通过该段代码获取openid报错,明细信息如下:

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    发表于小程序端
    星期三 10:29

    看云托管文档配置下证书,或者改源码改成http地址

    星期三 10:29
    有用
    回复 2
    • 卡布船長
      卡布船長
      星期三 10:32
      怎么下载,请问操作说明在哪儿哇?
      星期三 10:32
      回复
    • Mr.Zhao
      Mr.Zhao
      发表于移动端
      星期三 11:15回复卡布船長
      1. 证书与 HTTPS 使用云调用时建议使用 HTTP 协议以获得更好的性能,如确有需求使用 HTTPS 协议,请参考以下说明。官方模板的Dockerfile中,也都加入了安装命令,可直接参考。 为了允许用户使用 HTTPS 协议访问容器云调用,云调用会在用户容器内安装 api.weixin.qq.com 的自签名证书,该证书在容器内一次性生成使用,仅容器内有效,仅容器云调用内使用该证书进行认证,与用户容器完全隔离。 由于容器系统版本、服务框架不一,在容器启动过程中,会调用 update-ca-certificate 信任证书。如需使用 HTTPS,需提前确认容器中包含 update-ca-certificate: # debian/ubuntu RUN apt install ca-certificates -y # alpine RUN apk add ca-certificates # centos/fedora/rhel RUN yum install ca-certificates 若容器安装证书不生效,或使用部分自带根证书的运行时(如 Node.JS),需手动信任以下目录的根证书: /app/cert/certificate.crt 针对不同的语言和框架,可以将以下命令添加到 Dockerfile 中从而信任根证书: # Java 手动导入根证书 RUN keytool -importcert -file /app/cert/certificate.crt -alias apiweixin -keystore $JAVA_HOME/jre/lib/security/cacerts # Node 指定根证书环境变量 ENV NODE_EXTRA_CA_CERTS=/app/cert/certificate.crt # Python requests 指定环境变量 ENV REQUESTS_CA_BUNDLE=/app/cert/certificate.crt 信任后,即可使用 HTTPS 协议进行容器云调用。
      星期三 11:15
      回复
登录 后发表内容