用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

Java SSL - CertificateException: No name matching相关推荐

  1. java.security.cert.CertificateException: No name matching IP found

    java.security.cert.CertificateException: No name matching localhost found 解释:安全证书异常,IP地址找不到 解决方案如下:程 ...

  2. java.security.cert.CertificateException: No name matching https证书验证不通过

    1.报错信息 1 java.security.cert.CertificateException: No name matching api.weibo.com found; nested excep ...

  3. java ssl发送邮件_通过SSL发送的Java邮件

    java ssl发送邮件 抽象 本博客的目的是演示如何使用Java Mail通过具有SSL连接的SMTP服务器发送电子邮件. 免责声明 这篇文章仅供参考. 在使用所提供的任何信息之前,请认真思考. 从 ...

  4. java ssl证书_Java安全教程–创建SSL连接和证书的分步指南

    java ssl证书 在有关应用JEE安全性的系列文章中,我们为您提供了另一个有关如何在Java EE应用程序中创建SSL连接和创建证书的详细教程. 如我们之前的文章中所述, 安全套接字层(SSL)/ ...

  5. java ssl server,Java SSL Server禁用弱椭圆曲线

    所以这是我的 Java ssl Server的代码. ctx是使用服务器密钥库初始化的SSLContext. public SSLEngine createSSLEngine() { SSLEngin ...

  6. java ssl连接(no cipher suites in common)

    Java SSL/TLS 安全通讯协议介绍 Java 的安全通讯 本文主要介绍了网络安全通讯协议 SSL/TLS 和 Java 中关于安全通讯的实现部分.并通过一个简单的样例程序实现,来展示如何在 J ...

  7. java SSL 简单操作demo

    SSL process :http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#H ...

  8. java ssl https 连接详解 生成证书

    我们在关于Java EE安全的系列文章中,有一篇也详细介绍了如何在Java EE应用中创建SSL连接和证书.正如前面文章提到的,SSL(Secure Sockets Layer,安全套接层)/TLS( ...

  9. java ssl证书生成_java – 使用jdk中提供的keytool生成SSL证书

    我在Web应用程序中使用的密钥库文件已于上周过期.我很久以前就生成了它.所以我开始使用keytool生成新证书.我使用此证书连接事务服务器和Web服务器.我想为此应用程序使用自签名证书.我使用以下命令 ...

最新文章

  1. ubuntu 安装OpenBLAS
  2. React开发(141):react中ref为class添加ref
  3. python中encode与decode编码转换
  4. my-innodb-heavy-4G.cnf中文注释(主要配置文件注释)
  5. 计算机动漫与游戏制作画画教学,科普下动漫制作必须会画画吗
  6. SpringBoot使用@Asyn注解注意事项
  7. python webservices_python实现webservices接口并调用
  8. C++ 訪问控制权限图解
  9. 如何获取Android移动终端设备唯一ID
  10. 百度之星程序设计大赛输出格式的注意
  11. 借助excel工具进行多元线性回归模型的建立及案例分析
  12. 初学者c语言编程软件_初学者的C编程语言
  13. S5p4418平台AP6212 WIFI稳定性的解决过程
  14. python Click库知识点汇总
  15. 全攻略:实现pynq-z2条形码识别
  16. 读书笔记—1分钟和陌生人成为朋友
  17. matlab 与VS混合编程的几个问题
  18. 智商决定是否录用,情商决定是否晋升
  19. Echarts图形化报表工具
  20. 转-CRC问题的解决

热门文章

  1. 从B站装机猿的配置到电脑配件厂商
  2. 辽宁沈阳即将实现大数据交易
  3. 学习在UE中使用RVT(RuntimeVirtualTexture)将物体与地形混合过渡
  4. HTML5基础 上
  5. NLP必学:Word2Vec、Glove和ELMO
  6. Restful风格的五种基本操作
  7. 长安“战疫”网络安全赛-wp
  8. 团体程序设计天梯赛 L1-070 吃火锅 (15 分) C语言实现
  9. 模糊控制应用实例——洗衣机的模糊控制详解
  10. 模板引擎art-template应用 案例 ---- 学生档案管理