java - ssl = true 时无法访问 Karate FeatureServer,出现 javax.net.ssl.SSLHandshakeException

标签 java ssl karate

这个问题在这里已经有了答案:





How to skip SSL certificate verification with karate?

(4 个回答)



"PKIX path building failed" and "unable to find valid certification path to requested target"

(48 个回答)


去年关闭。




我正在尝试模拟 okta(使用 okta-jwt-helper - v0.5.0),这里我需要 url 像 https://someUrl.com ,因此我使用 karate-netty FeatureServer 与 ssl true。这就是我在运行器中分别在@BeforeClass 和@AfterClass 中启动服务器和停止服务器的方式,

private static FeatureServer oktaServer;
oktaServer = FeatureServer.start(oktaMockFile, 3010, true, null);
oktaServer.stop();
服务器已启动,cert.pemkey.pem文件在目标文件夹中生成。但是当我试图联系 https://localhost:3010/somePath 时,我收到此错误
javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我尝试同时使用 Karate 0.9.3 & 0.9.6 我正在使用 java8 , jdk1.8.0_261.jdk maven3 .
解决方案已尝试 :
  • 我尝试将 cert.pem 添加到 keytool 但这没有帮助,因为在每次 mvn 全新安装后, Karate 都会替换和生成证书。
  • 我尝试将 local_policy.jar 和 US_export_policy.jar 添加到 $JAVA_HOME/jre/lib/security/但这也没有帮助。
  • 我还尝试按照建议添加 http-client 和 http-core 依赖项以避免依赖冲突。

  • 有人可以帮我解决我做错了什么,或者是否需要进行任何设置才能将 FeatureServer 与 ssl boolean true 一起使用?

    最佳答案

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


    根据上述异常,客户端未验证服务器身份。当您在底层客户端的信任库中没有服务器根证书和中间证书时,就会发生这种情况,这些证书将用于验证服务器身份。
    以下是您的程序使用 java truststore 时的情况。 .
    默认情况下,java 使用 cacerts通常可以在以下位置找到的信任库JAVA_HOME/jre/lib/security/cacerts Windows 操作系统上的此路径。
    访问该信任库的默认密码是 changeit .获取根证书和中间证书,并使用 keytool 等实用程序将它们添加到存储中。

    关于java - ssl = true 时无法访问 Karate FeatureServer,出现 javax.net.ssl.SSLHandshakeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66670049/

    相关文章:

    java - JFrame性能低下

    apache - 强制 https 连接

    cucumber - 在 cucumber 中使用背景部分时出现 "required (...)+ loop did not match anything at input ' 场景 :'"错误

    Java SQL 从日期中减去一个小时

    java - 迭代器的 next() 方法

    ssl - 是否可以从 pgp 公钥/私钥创建 ssl 证书?

    node.js - Bluemix 应用程序上自定义域的 SSL 证书传播问题

    karate - #ref :java. Karate 工具中的 util.LinkedHashMap 错误

    karate - 我想在功能文件的后台调用一次java方法,将该方法的值分配给变量并跨场景共享

    java - 如何启动内存数据库来测试 JPA 实体?