【问题标题】:what is the protocol be used in SSLContext.getInstanceSSLContext.getInstance 中使用的协议是什么
【发布时间】:2016-02-18 08:12:15
【问题描述】:

我正在用下面的代码测试JDK1.7

SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null,null,null);
SSLSocketFactory sf = sc.getSocketFactory();
SSLSocket ss = (SSLSocket)sf.createSocket();
System.out.println(Arrays.toString(ss.getSupportedProtocols()));

无论我将什么协议作为getInstance 参数,结果都没有变化。我已经尝试过这些协议:

  • SSLv2Hello
  • SSLv3
  • TLSv1
  • TLSv1.1
  • TLSv1.2

这个参数在哪里生效,我以后可以调用sslsocket.setEnabledProtocols来设置我想要的协议?

【问题讨论】:

标签: java ssl


【解决方案1】:

它会影响启用的协议。

如果你打印了getEnabledProtocols()而不是getSupportedProtocols().的结果会更有趣

【讨论】:

  • 是的,你是对的,结果:SSLContext.getInstance 到 ss.getEnabledProtocols * TLSv1.1 产生 SSLv3,TLSv1,TLSv1.1 * SSL 产生 SSLv3,TLSv1 * TLSv1.2 产生 SSLv3, TLSv1, TLSv1.1, TLSv1.2 但似乎这个设置可以被 ss.setEnabledProtocols 覆盖,所以我猜 SSLContext.getInstance 并不重要?
  • 不打电话给setEnabledProtocols().很重要
猜你喜欢
  • 2011-04-28
  • 2017-08-06
  • 2016-05-30
  • 2019-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 2015-02-03
相关资源
最近更新 更多