Java笔记-解决SSLHandshakeException: No subject alternative names present

我这边是这样出现的问题,做了一个双向认证的WebService,证书是用keytools做的自签名,其中cn为localhost。在外网测试的时候,客户端检测自己的证书不通过。百度没有找到决解的办法,最后去外网看了,用了洋人的方法解决的。在此记录下。

 

在自己的代码中,需要连接网络的地方添加如下静态函数:

static {
    HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier()
        {
            public boolean verify(String hostname, SSLSession session)
            {
                // ip address of the service URL(like.23.28.244.244)
                if (hostname.equals("23.28.244.244"))
                    return true;
                return false;
            }
        });
}

如果是java8可以用下面的表现方式:

static {
    HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> hostname.equals("127.0.0.1"));
}

 

本人在项目里面是这样操作的:

©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值