解决 JDK1.7 不支持 VCenter 6.7 的问题

问题描述

原项目工程是使用JDK 1.7,可以连接 5.X版本和 6.0版本的 VCenter资源池。

但是,现在VCenter已经升到 6.7版本,原程序对于高版本的 VCenter 6.7 不再试用。

连接 VCenter 6.7版本的资源池的时候,一直报 SSLHandshakeException的异常错误。

报错信息如下:

问题处理

1、背景介绍

JDK1.7 默认是 TSLv1, 但是可以支持 TSLv1.1,TSLv1.2;

JDK1.8 默认是 TSLv1.2

2、解决方案

1)如果是脚本访问,可以在连接参数里增加 -Dhttps.protocols=TLSv1.2

2)如果是Java程序处理,想使用 JDK 1.7 访问 VCenter 6.7 资源池,需要对VCenter 6.7版本单独处理

a)根据资源池类型,设置不同的 https.protocols

if (type.equals("VC67")){

java.lang.System.setProperty("https.protocols", "TLSv1.2");

}else{

java.lang.System.setProperty("https.protocols", "TLSv1");

}

b)对于连接VC的认证处理如下:

if (type.equals("VC67")){

trustAllHttpsCertificatesTLS12();

}else{

trustAllHttpsCertificates();

}

trustAllHttpsCertificates() 方法如下

private static void trustAllHttpsCertificates() throwsException {

javax.net.ssl.TrustManager[] trustAllCerts= new javax.net.ssl.TrustManager[1];

javax.net.ssl.TrustManager tm= newTrustAllTrustManager();

trustAllCerts[0] =tm;

javax.net.ssl.SSLContext sc= javax.net.ssl.SSLContext.getInstance("SSL");

javax.net.ssl.SSLSessionContext sslsc=sc.getServerSessionContext();

sslsc.setSessionTimeout(20);//add time out 20 t for session

sc.init(null, trustAllCerts, null);

javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

}

trustAllHttpsCertificatesTLS12() 方法如下

private static void trustAllHttpsCertificatesTLS12() throwsException {

javax.net.ssl.TrustManager[] trustAllCerts= new javax.net.ssl.TrustManager[1];

javax.net.ssl.TrustManager tm= newTrustAllTrustManager();

trustAllCerts[0] =tm;

javax.net.ssl.SSLContext sc= javax.net.ssl.SSLContext.getInstance("TLSv1.2");

javax.net.ssl.SSLSessionContext sslsc=sc.getServerSessionContext();

sslsc.setSessionTimeout(20);//add time out 20 t for session

sc.init(null, trustAllCerts, null);

javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

}

TrustAllTrustManager 类如下

private static class TrustAllTrustManager implementsjavax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {publicjava.security.cert.X509Certificate[] getAcceptedIssuers() {return null;

}public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) throwsjava.security.cert.CertificateException {return;

}public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) throwsjava.security.cert.CertificateException {return;

}

}

java6不支持tlsv1.2_解决 JDK1.7 不支持 VCenter 6.7 的问题(涉及到Https TLS1.2协议)相关推荐

  1. android支持wifi11ad,如何解决android手机不支持ADHOC功能

    有一次我同事在他笔记本上虚拟WiFi,IPhone4,Nokia,等手机使用正常,而我的手机无法搜索到热点,后来我终于知道,android系统不支持adhoc,所以无法直接搜索到电脑模拟的wifi信号 ...

  2. 【Ubuntu】安装中文输入法、终端不支持中文的解决方法

    一.中文输入法安装 1.安装汉语语言包 sudo apt install fcitx sudo apt install language-pack-zh-hans 2.安装google拼音输入法 su ...

  3. android canvas 保存图片,ionic3 html5 video 抓图保存到手机相册,解决Android手机不支持Canvas drawImage问题...

    当然百度出上W条答案 上代码,相信下面代码和小伙伴大同吧 相信好多做webview app的小伙伴们都有同样的问题,在pc上能轻松实现video 抓图.但是在android手机大多是不支持canvas ...

  4. 解决IE6下不支持 png24的透明图片问题

    解决IE6下不支持 png24的透明图片问题 参考文章: (1)解决IE6下不支持 png24的透明图片问题 (2)https://www.cnblogs.com/heimanba/p/3826771 ...

  5. [flask实践] 解决mysql数据库不支持中文的问题

    [flask实践] 解决mysql数据库不支持中文的问题 参考文章: (1)[flask实践] 解决mysql数据库不支持中文的问题 (2)https://www.cnblogs.com/xiaozh ...

  6. 服务不支持 chkconfig 的解决方法

    服务不支持 chkconfig 的解决方法 参考文章: (1)服务不支持 chkconfig 的解决方法 (2)https://www.cnblogs.com/areyouready/p/885780 ...

  7. 服务器支持curl,互联网要点:服务器不支持curl_exec的解决办法

    当下应该属于互联网时代吧今天小编分享一篇有关于服务器不支持curl_exec的解决办法,相信小伙伴们对这个话题应该也很关注吧,那么现在就为小伙伴们说说服务器不支持curl_exec的解决办法,小编也收 ...

  8. ACCESS中的Update语句不支持Select的解决办法

    ACCESS中的Update语句不支持Select的解决办法执行 比如ACCESS中执行SQL语句: UPDATE HN_news AS a SET typeid = (select clid fro ...

  9. nginx虚拟目录支持PHP,nginx“虚拟目录”不支持php的解决方法

    nginx"虚拟目录"不支持php的解决办法 这几天在配置Nginx,PHP用FastCGI,想装一个phpMyAdmin管理数据库,phpMyAdmin不想放在网站根目录 下,这 ...

最新文章

  1. 用原生js的postMessage实现iframe传值,也可以用于跨域嵌套iframe传值
  2. IE 市场份额暴跌,Edge 能否守住微软的辉煌
  3. 形象理解操作系统的进程与线程
  4. Windows消息循环理解及窗体创建步骤
  5. doublevalue_Java Double类doubleValue()方法与示例
  6. 终于有人把大数据讲明白了。。。
  7. c语言用指针变量输入数组的长度,C语言之数组的基础练习题(指针变量做函数参数)...
  8. java8 function 固定0_Java8特性使用Function代替分支语句
  9. 转---《C#画线控件的开发应用实例解析》
  10. python中wordcloud函数不同形状云图_10行Python代码生成任意形状的文字云图
  11. 深扒洪恩教育招股书:研发含金量低,三年亏3亿,池宇峰再闯美股
  12. mysql非整型分区_mysql分区
  13. 计算机网络信息安全等级保护(等保)
  14. Java中的判断语句
  15. Stata:回归结果中不报告行业虚拟变量的系数
  16. Eclipse Plungins--Pydev
  17. 人脸识别-批量裁剪图像
  18. 【3Dsmax】入门
  19. IDV和VDI,桌面虚拟化对比
  20. excel两列乱序姓名如何一一对应 excel 两列数据自动配对

热门文章

  1. 【EOS】2.1 EOS Hello World合约
  2. Ubuntu18.04快捷键
  3. 牛客多校第六场 G Is Today Friday? 蔡勒公式/排列
  4. tomcat 开启 https 使用apr
  5. java 内部类和静态内部类的区别
  6. 使用jq工具在Shell命令行处理JSON数据
  7. AJAX实例演示加载xml
  8. Ubuntu下解压缩文件
  9. Hive UDF开发
  10. MEF体验使用接口导出的优越性