尝试联系某个网站时出现以下错误:
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
我找到了以下答案:https://stackoverflow.com/a/14884941/10791639
我编辑了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连接的参数是否可能?