收藏
回答

服务器证书已经具备G2证书,代码中也没有相关指定证书的代码但还是会报错,怎样排查处理?

AppID
wxfa8a3de740bd4ca4

linux已经具备G2证书,代码中也没有指定使用根证书的代码,但是绑定到新证书环境:43.142.224.50 api.mch.weixin.qq.com 就会报sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target这个错误,不指定就正常,也使用命令:keytool -importcert -keystore cacerts -storepass changeit -noprompt -file ./DigiCertGlobalRootG2.crt -alias digicertglobalrootg2 重新安装了证书还是不行,应该怎样去排查处理这个问题呢

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

3 个回答

  • 微信支付质量运营助手
    微信支付质量运营助手
    07-11

    看上去是没有使系统的服务器证书,请排查业务相关代码是否有指定了证书的。

    https://developers.weixin.qq.com/community/develop/article/doc/0002284c6948c066ad919a2bc67813?page=1#comment-list

    07-11
    有用
    回复
  • 李楠
    李楠
    07-15

    JAVA 还可能会默认使用 JDK 的 KeyStore 用下面命令检查:

    cd $JAVA_HOME/jre/lib/security/
    keytool -list -keystore cacerts | grep "digi"
    

    

    如果缺失 G2 的话用下面命令添加:

    cd $JAVA_HOME/jre/lib/security/
    wget https://cacerts.digicert.com/DigiCertGlobalRootG2.crt
    keytool -importcert -alias "DigiCertGlobalRootG2" -file DigiCertGlobalRootG2.crt -keystore cacerts
    


    07-15
    有用 2
    回复 3
    • 逍遥游
      逍遥游
      07-16
      补充一句,如果JDK的keystore加入后仍然报错,请重启一次相关服务应用,本公司的应用重启后可正常请求。
      07-16
      1
      回复
    • Arron
      Arron
      07-16
      你好,请问一下Windows系统JAVA 还可能会默认使用 JDK 的 KeyStore 用下面命令检查是怎么查得呢? 我使用上面那个提示“grep”不是内部指令,谢谢!
      07-16
      回复
    • jasonj
      jasonj
      07-16
      不用查了,测试环境的话就直接添加证书试试
      07-16
      回复
  • 祥云化雨
    祥云化雨
    发表于移动端
    07-31
    这边遇到的同样的问题,请问老师您这边解决这个问题了吗
    07-31
    有用
    回复 2
    • 祥云化雨
      祥云化雨
      发表于移动端
      07-31
      keystore 中已经有G2证书了
      07-31
      回复
    • en
      en
      11-14
      jdk版本问题,升级jdk
      11-14
      回复
登录 后发表内容
问题标签