【问题标题】:How to enable and use Cipher Suite TLS_RSA_WITH_AES_128_CBC_SHA in Java v1.8如何在 Java v1.8 中启用和使用密码套件 TLS_RSA_WITH_AES_128_CBC_SHA
【发布时间】:2018-05-30 02:47:54
【问题描述】:

我正在尝试通过 ssl 建立连接。客户端仅启用了 TLSv1.0 并支持以下提到的有限数量的密码套件:

  • TLS_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA

我在 Java 1.8.0_151-b12 上运行服务器。当客户端请求建立 SSL 连接时,我在服务器控制台上看到以下异常: https-jsse-nio-9080-exec-8,致命:引擎已关闭。
重新抛出 javax.net.ssl.SSLHandshakeException:没有共同的密码套件

我尝试了 Java Cryptography Extension (JCE) Unlimited Strength,但没有成功。

有没有办法在 Java v1.8 中启用这些密码套件?

谢谢你的期待。

【问题讨论】:

  • TLS_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_256_CBC_SHA(当无限强度管辖政策文件到位时)should be supported by Java 8。您使用的是哪种服务器;服务器端是否有任何自定义 SSL 处理代码可以在这里发挥作用?
  • 服务器是否配置(或创建)了一个包含具有适当证书或链的 RSA 私钥的密钥库?
  • @MickMnemonic 我正在使用 SpringBoot v1.5.3 + Tomcat v8.5.14。服务器端没有任何自定义 SSL 处理代码。
  • @dave_thompson_085 我在创建证书时使用了 keyalg 作为 RSA。有没有办法在创建证书时指定密码套件?另外,如果我在放置无限强度策略 jar 之前创建了证书,这是否重要?
  • @MickMnemonic+ 我没有立即注意到,但 8u151(以及 152 和 j9)最终删除了愚蠢的策略文件要求,现在您只需要在 JRE/lib/security 中进行简单的文本编辑/java.security——参见发行说明。但是 Oracle 非测试版不应该有 -b(num) 元素;只有 OpenJDK 这样做,而且 OpenJDK 从一开始就没有策略文件的错误功能。另外,即使您有政策限制,它也只会影响 AES256;即使有限制,也允许使用 AES128 和 3DES。

标签: java ssl


【解决方案1】:

@dave_thompson_085 感谢您查看我的查询。我能够解决这个问题,这里是步骤,

  1. 打印所有 Java DefaultCipherSuites 和 SupportedCipherSuites 并查找所需的。
  2. 如果找到,则在 SpringBoot 配置文件中添加密码套件名称,如此处所述, How to set up SSL (TLS) / HTTPS on Spring Boot using AES-256?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多