当前位置: 首页 > 知识库问答 >
问题:

获取 PKIX 路径构建失败,在使用 SSL 连接到Kafka群集时出现异常

燕昊东
2023-03-14

当我使用带SSL的apache camel连接到Kafka集群时,我面临以下问题,请任何人帮助解决这个问题

javax . net . SSL . SSL handshake异常:sun . security . validator . validator异常:PKIX路径构建失败:sun . security . provider . certpath . suncertpathbuilderexception:在sun . security . SSL . alerts . getsslexception(alerts . Java:192)在sun . security . SSL . SSL . sslsocketimpl . fatal(sslsocketimpl . Java:1937)上找不到请求目标的有效证书路径

这是加载.jks文件的正确方法吗?

  @Component
    public class MyRouteDefinition extends RouteBuilder {
    
    @Override
    public void configure() throws Exception {

        KeyStoreParameters ksp = new KeyStoreParameters();
        ksp.setType("jks");
        ksp.setResource("truststore.jks);
        ksp.setPassword("password");

        KeyManagersParameters kmp = new KeyManagersParameters();
        kmp.setKeyStore(ksp);
        kmp.setKeyPassword("password");

        TrustManagersParameters trustManagersParameters = new TrustManagersParameters();
        trustManagersParameters.setKeyStore(ksp);

        SSLContextParameters scp = new SSLContextParameters();
        scp.setKeyManagers(kmp);
        scp.setTrustManagers(trustManagersParameters);

        HttpComponent httpComponent = getContext().getComponent("https4", HttpComponent.class);
        httpComponent.setSslContextParameters(scp);

        //TO HTTPS
        from(...)
        .to("https://localhost:8080/load")
             log.debug("The response code is: {}", responseCode);
         }
    }

共有2个答案

危飞跃
2023-03-14
System.setProperty("javax.net.ssl.trustStore", "C:\\user\\myTrustStore"); 
System.setProperty("javax.net.ssl.trustStorePassword", "123456"); 

我找到了解决方案,从以上几条线来看,效果很好

乜思淼
2023-03-14

使用HTTP时,客户端需要信任服务器。服务器发送证书以证明其身份。证书由CA(证书颁发机构)签署。客户端仅在识别签署其证书的CA时才信任服务器。如果CA存在于其信任库中,客户端将识别该CA。

如果证书未由CA签名,您也可以直接将证书导入信任库。

我猜你要么

  1. 将签署服务器(侦听 localhost:8080 的 CA)证书的 CA 导入到客户机的信任库中
  2. 将服务器的证书本身导入到信任库中。
 类似资料:
  • 问题内容: 我正在与一个名为CommWeb的商户帐户集成,并向其URL(https://migs.mastercard.com.au/vpcdps)发送一个SSL帖子。当我尝试发送帖子时,出现以下异常: 执行该帖子的代码(我没有写过,并且已经存在于我们的代码库中)是: 商户帐户集成的文档对证书一无所知。他们确实提供了一些似乎盲目接受证书的示例JSP代码: 我们的Web应用程序有一个密钥库,我尝试使

  • 当我从Java中的Windows(JDBC)连接Linux Oracle服务器时遇到以下错误,请问如何解决这个错误。 java.sql.SqlRecoverableException:Io异常:Sun.Security.Validator.ValidatorException:PKIX路径构建失败:Sun.Security.Provider.CertPath.SunCertPathBuilderE

  • 我正在使用一个自定义的工件库来部署我的项目。当我在本地机器上工作时,这很好,但我已经启用了Gitlab的AutoDevOps功能,并将我的项目与Kubernetes集群集成。 kubernetes集群由rancher管理。 问题是在Gitlab上运行的构建失败并出现以下错误: 插件org.apache.maven。插件:maven resources插件:2.6或其一个依赖项无法解析:无法读取or

  • 我的要求是通过SSL与Spring Boot和Apache Camel连接Kafka主题,为此,我编写了以下代码,但我面临一个类似于sun.security.validator.validatoreXception引起的错误:PKIX路径构建失败:sun.security.provider.certPath.SunCertPathBuilderException:无法找到请求目标的有效认证路径 任

  • Sun.Security.Validator.ValidatorException:PKIX路径生成失败:Sun.Security.Provider.CertPath.SunCertPathBuilderException:找不到请求目标的有效证书路径;嵌套异常为javax.net.ssl.sslHandShakeException:Sun.Security.Validator.Validator

  • 我刚刚为我们的域名购买了一个新的通配符ssl证书,因为我们的旧证书即将到期。我已经将它安装在我们的cas服务器和应用服务器上,但是我在我们的应用服务器上得到以下堆栈跟踪: 两个服务器上的证书是相同的。