ssl 错误:java.security.cert.证书异常:非法的给定域名:示例xyz.stg.myweb.com

p4tfgftt  于 2022-11-14  发布在  Java
关注(0)|答案(3)|浏览(131)

在调用api时发现以下异常
https://abc_xyz.stg.myweb.com/api/AuthorizedUser?username=admin&password=admin
java.security.cert.CertificateException:非法的给定域名
当得到响应从服务器使用泽西岛。一切都很好,当我得到响应从 Postman 。
为什么是非法域名,浏览器是否不拒绝打开这个。
如果我的域名不包含下划线,那么这个异常就不会出现。这是域名中的下划线问题吗?

svgewumm

svgewumm1#

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

balp4ylt

balp4ylt2#

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

HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    });
tf7tbtn2

tf7tbtn23#

我也遇到了同样的问题,无法更新jdk,也不想禁用ssl主机名验证。将名称中的下划线字符改为破折号(“-”而不是“_”)效果很好。显然破折号和下划线的求值是一样的。

相关问题