有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

线程“main”javax中的java异常。ws。rs.ProcessingException:javax。网ssl。SSLProtocolException:握手警报:无法识别的\u名称

我是REST新手,最近我开发了一个小型JavaREST客户机,使用jersey使用SSL(https)上的api。但是,我面临以下错误的挑战:

线程“main”javax中出现异常。ws。rs.ProcessingException:javax。网ssl。SSLProtocolException:握手警报:无法识别的\u名称 ........ ........ 原因:javax。网ssl。SSLProtocolException:握手警报:无法识别的\u名称

我从一些帖子上读到关于在java中禁用SNI的内容,但我不清楚。 因为我使用的是EclispeIDE,所以我在eclipse中添加了“-djse.enableSNIExtension=false”。ini文件,但错误仍然出现。 谁能给我指出正确的方向吗


共 (2) 个答案

  1. # 2 楼答案

    我意识到需要通过使用将安全上下文设置为“TLSv1”并使用TrustManager和HostnameVerifier(参见下面的代码片段)来处理异常(“javax.net.ssl.SSLProtocolException:握手警报:无法识别的_名称”)。这为我解决了这个问题

            SSLContext sc = SSLContext.getInstance("TLSv1");
            System.setProperty("https.protocols","TLSv1");
    
            TrustManager[] trustAllCerts = {new InsecureTrustManager()};
            sc.init(null, trustAllCerts, new java.security.SecureRandom());
            HostnameVerifier allHostsValid = new InsecureHostnameVerifier();