为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Java 6中使用TLS 1.2

如何在Java 6中使用TLS 1.2

小怪兽爱吃肉 2019-10-21 09:42:46
似乎Java 6支持TLS v1.0或更高版本,在Java 6中是否可以使用TLS 1.2?也许Java 6的补丁或特定更新会对此提供支持?
查看完整描述

3 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

公开的Oracle Java 6版本不支持TLSv1.2。Java 6的付费发行版(EOL后)可能会发布。(更新 -TLSv1.1从更新111开始可用于Java 1.6;来源)


与Oracle销售人员联系。


其他替代方法是:


使用替代的JCE实现,例如Bouncy Castle。


如果您的平台可用,请使用IBM Java 6...。根据“ IBM SDK Java技术版修复程序以缓解POODLE安全漏洞(CVE-2014-3566)”:


“ TLSv1.1和TLSv1.2仅可用于Java 6服务刷新10,Java 6.0.1服务刷新1(J9 VM2.6)和更高版本。


但是,我建议升级到Java8。2013年2月对Java 6进行了停产销售,继续使用它存在潜在的风险。(告诉或提醒老板/客户。他们需要知道。)


查看完整回答
反对 回复 2019-10-21
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您必须基于Bouncy Castle创建自己的SSLSocketFactory。使用完后,传递给通用HttpsConnextion以使用此定制的SocketFactory。


1.首先:创建一个TLSConnectionFactory


这里有一个提示:


1.1扩展SSLConnectionFactory


1.2覆盖此方法:


@Override 

public Socket createSocket(Socket socket, final String host, int port, boolean arg3)

该方法将调用下一个内部方法,


1.3实现内部方法_createSSLSocket(host,tlsClientProtocol);


在这里,您必须使用TlsClientProtocol创建一个Socket。诀窍是重写... startHandshake()方法,调用TlsClientProtocol


 private SSLSocket _createSSLSocket(final String host , final TlsClientProtocol tlsClientProtocol) {

     return new SSLSocket() {    

       .... Override and implement SSLSocket methods,  particulary: 

            startHandshake() {

             }    

     }

重要说明:此处完整说明了如何使用TLS客户端协议的完整示例:使用BouncyCastle进行简单的HTTPS查询


2.第二:在公共HTTPSConnection上使用此Customized SSLConnextionFactory。


这个很重要 !在其他示例中,您可以看到网络,您可以看到硬编码的HTTP命令...。因此,使用自定义的SSLConnectionFactory,您仅需使用...


  URL myurl = new URL( "http:// ...URL tha only Works in TLS 1.2);

  HttpsURLConnection  con = (HttpsURLConnection )myurl.openConnection();

  con.setSSLSocketFactory(new TSLSocketConnectionFactory());


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 2125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信