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

时间:2017-12-18 09:35:06

标签: java ssl

我的团队在调用api

时发现以下异常
  

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

     

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

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

为什么它是非法域名,浏览器是否拒绝打开此域名。

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

我遇到了同样的问题,无法更新jdk,也不想禁用SSL主机名验证。将名称中的下划线字符更改为破折号(“-”而不是“ _”)非常有效。显然,破折号和下划线的评估结果相同。