这个问题在这里已经有了答案:
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.pem
和 key.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 .解决方案已尝试 :
有人可以帮我解决我做错了什么,或者是否需要进行任何设置才能将 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/