微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java HttpsURLConnection和TLS 1.2

如何解决Java HttpsURLConnection和TLS 1.2

您将必须 在 创建一个SSLContext用于设置Protocoll的协议:

 SSLContext sc = SSLContext.getInstance("TLSv1.2");
 // Init the SSLContext with a TrustManager[] and SecureRandom()
 sc.init(null, trustCerts, new java.security.SecureRandom());

在 :

 SSLContext sc = SSLContext.getInstance("TLSv1");
 // Init the SSLContext with a TrustManager[] and SecureRandom()
 sc.init(null, trustCerts, new java.security.SecureRandom());

那么您只需将 SSLContext 设置为 :

httpsCon.setSSLSocketFactory(sc.getSocketFactory());

这应该够了吧。

解决方法

我读了一篇HttpsURLConnection 将透明地协商SSL连接的文章。

官方文件说:

此类使用HostnameVerifier和SSLSocketFactory。这两个类都有默认的实现。[
1
]

这是否意味着一旦您打开与

httpsCon = (HttpsURLConnection) url.openConnection();

它已经被SSL / TLS加密了,没有更多麻烦了吗?

如何查看和设置标准实施的TLS版本?(对于Java 8应该是TLS 1.2,对于Java 7应该是TLS 1.0)

参考文献

  1. 甲骨文公司(2011)。 _javax.net.ssl.HttpsURLConnection_ 。(JavaDoc)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。