Java SSL
来源:互联网 发布:郑州顶尖网络 编辑:程序博客网 时间:2024/05/17 01:23
用java去连接SSL网站时,有时候出现:
Caused by: java.security.cert.CertificateException: No name matching ...
这是因为虽然server的certificate被trust了,但是host name verify验证失败,因为你connect的service的hostname和证书中的subject CN name不一致,所以导致了这个问题。
解决办法有两个:
1 客户端可以更改SSL配置去信任所有的hostname。
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HostnameVerifier allHostsValid = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
// set the allTrusting verifier
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
2 服务端重新制作证书,将证书中的subject CN name signed成自己真正的被客户端连接时使用的hostname.
原文:http://blog.csdn.net/hongchangfirst/article/details/78202635
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
- SSL java
- java----ssl
- java SSL
- Java SSL
- JAVA客户端连接SSL
- Java的SSL连接
- JAVA客户端连接SSL
- java SSL https 资料
- JAVA客户端连接SSL
- java ssl 双向认证
- java ftp ssl
- java 之 SSL
- JAVA客户端连接SSL
- java訪問ssl方法
- Tomcat+java+ssl
- java SSL加密传输
- JAVA SSL数字证书
- Java通信协议------SSL
- Rectified Linear Units, 线性修正单元激活函数
- Test
- [poj1734]Sightseeing trip(Floyd)
- 使用start-hbase.sh 启动服务 然后HMaster 和 HRegionServer 相继挂掉
- 面朝大海春暖花开
- Java SSL
- 关于搜索elasticsearch的数据条数大于10000的坑
- Gram矩阵
- Hadoop 2.6 使用MapReduce实现基于物品的推荐系统
- sshpass使用
- 多条目列表展示
- 将mysql注册成服务
- 请使用 Alt + w 给该链接赋予焦点
- java 9 新特性