Karate SNI:SSLHandshakeException无法识别的\u名称

Karate SNI:SSLHandshakeException无法识别的\u名称,karate,sslhandshakeexception,sni,Karate,Sslhandshakeexception,Sni,我在尝试联系某个网站时出现以下错误: 10:29:32.228 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - javax.net.ssl.SSLHandshakeException: Received fatal alert: unrecognized_name, http call failed after 35 milliseconds for URL: https://{redacted} 10:29:32.229 [ForkJoi

我在尝试联系某个网站时出现以下错误:

10:29:32.228 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - javax.net.ssl.SSLHandshakeException: Received fatal alert: unrecognized_name, http call failed after 35 milliseconds for URL: https://{redacted}
10:29:32.229 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - http request failed: javax.net.ssl.SSLHandshakeException: Received fatal alert: unrecognized_name
我找到了以下答案:

我编辑了
karate-apache/src/main/java/com/intuit/karate/http/apache/ApacheHttpClient.java
L125,删除了这一行的注释:

System.setProperty("jsse.enableSNIExtension", "false");

但我仍然有和以前一样的问题。我还没有发现一个公共网站需要严格的服务器名称指示来重现我的问题。

我们通过更改
karate apache/src/main/java/com/intuit/karate/http/apache/ApacheHttpClient.java
中的内容找到了解决方案:

SSLConnectionSocketFactory socketFactory = new LenientSslConnectionSocketFactory(sslContext, new NoopHostnameVerifier());
变成

SSLConnectionSocketFactory socketFactory = new SslConnectionSocketFactory(sslContext, new NoopHostnameVerifier());

@Peter,您认为使用严格或宽松SSL连接的参数是可能的吗?

您是否可以尝试切换到
空手道球衣
而不是apache。据我所知,
NoopHostnameVerifier
应该可以做到这一点,但仅限于SSL:我没有设法让空手道球衣发挥作用。我们找到了一个不同的解决方案,我在下面的答案中详细说明了这一点,你能看一下吗?谢谢。
LenientsLConnectionSocketFactory
是空手道中的代码-理想情况下,这应该是固定的,以使您的场景正常工作-您认为您可以调试它并计算吗?我在发布这个解决方案后发现了这个问题,当时我正试图找出解决这个问题的最佳方法。你可以重新打开它并把它分配给我。阿德里安-你能对那张票评论一次吗,否则我不能分配它(一些GitHub权限的事情)