错误:java.security.cert.CertificateException:非法的域名:abc_xyz.stg.myweb.com

Nit*_*har 3 java ssl

嗨团队我在调用api时发现以下异常

https://abc_xyz.stg.myweb.com/api/AuthorizedUser?username=admin&password=admin

java.security.cert.CertificateException:非法的给定域名

使用Jersey从服务器获取响应时 当我收到邮递员的回复时,一切都很好.

为什么它是非法域名,是否浏览器不拒绝打开这个.

如果我的域名不包含下划线,则此异常不会上升.这是域名中的下划线问题吗?

Fab*_*SUD 7

如果有人再次看到这个问题并且不想更改 jdk 版本,可以禁用 SSL 主机名验证(这不是一个好的解决方案,但有时无法避免这种情况..):

    HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)


小智 5

如果有人再次看到这个问题.这个问题是由旧的jdk认为,下划线作为子域名无效,后来从jdk中删除.所以简而言之,升级jdk版本将解决这个问题.

  • 很奇怪。几年后,我在使用 JDK 16,但遇到了这个问题。我必须注册并使用“-”而不是“_”来引用备用名称。 (4认同)