【问题标题】:NoSuchAlgorithmException : TLSv1.2 unknown protocolNoSuchAlgorithmException:TLSv1.2 未知协议
【发布时间】:2016-11-14 08:47:56
【问题描述】:

我尝试了很多方法并搜索了很多帖子,但找不到以下问题的正确答案。

在制作 ssl 上下文时,即

ctx = SSLContext.getInstance("TLSv1.2");

我遇到了一个异常

java.security.NoSuchAlgorithmException: Unknown protocol: TLSv1.2

我尝试使用另一个协议

ctx = SSLContext.getInstance("TLSv1");

然后我得到一个错误

javax.net.ssl.SSLHandshakeException: algorithm not supported for certificate

请帮我看看我哪里出错了。

【问题讨论】:

  • 您使用哪个 JRE 版本?最初只有 JDK 7+ 支持 TLS 1.2。 JDK 6 从 Update 121 开始支持它。而且我认为 JDK 5 根本不支持它。我说的是 Oracle JDK,不确定其他实现
  • 是的,你是对的 .. 我正在使用 java 1.4 .. 有什么办法我仍然可以在 java 4 中使用 TLS 吗?

标签: java ssl tls1.2


【解决方案1】:

您必须使用一些不支持 TLS 1.2 的旧版 Java。

升级。

【讨论】:

  • 是的,我使用的是 java 1.4,但是当我使用 ctx = SSLContext.getInstance("TLSv1");它创建了一个上下文..虽然存在 SSLHandshake 异常,它表示证书不支持算法
  • 那么您要么必须切换到较新的 Java 版本,要么必须创建/获取支持 TLSv1 的新证书
猜你喜欢
  • 2018-01-14
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2011-11-22
  • 2021-07-29
  • 2018-12-05
  • 1970-01-01
相关资源
最近更新 更多