java中禁用ssl证书验证的命令行标志

nhhxz33t  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(153)

我正在开发一个调用SVIX webhook的Sping Boot 应用程序。

Svix svix = new Svix("TOKEN");
        try {
            svix.getMessage().create("APP_ID",
                    new MessageIn()
                            .eventType(rd.getEventType())
                            .payload(ow.writeValueAsString(payload)));
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }

我在运行它时得到以下错误

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

我正在使用公司网络,我认为这导致了证书问题。(我在Postman中遇到了同样的问题,点击Disable SSL Verification就解决了。)
我正在寻找一个命令行标志禁用SSL验证。到目前为止我试过了

  • -Djdk.internal.httpclient.disableHostnameVerification=true
  • -Dcom.sun.security.enableAIAcaIssuers=true
  • -Dtrust_all_cert=true
  • -Dcom.sun.net.ssl.checkRevocation=false

但都不管用
我使用的是Sping Boot 版本3和Java版本17。
我明白禁用SSL验证不是一个好的解决方案。但我想用它来发展

pqwbnv8z

pqwbnv8z1#

您可能安装了不完整的证书存储。你试过更新ca证书吗?
例如,在Debian上(在Docker中):

RUN apt-get update ;\
    apt-get install --no-install-recommends -y \
      curl \
      ca-certificates=20210119; \
    update-ca-certificates; \
    rm -rf /var/lib/apt/lists/*

相关问题