首页 > 解决方案 > Spring Boot 2.5.3 - SSL 密码套件

问题描述

我有一个在 2.5.3 上运行的 Spring Boot 应用程序。

我已经使用以下方法配置(希望)安全密码:

server:
  port: 8443
  servlet:
    context-path: /somepath
  ssl:
    enabled-protocols: [ TLSv1.2,TLSv1.3 ]
    ciphers: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

有趣的是,当我现在对我的服务器运行 SSLyze 时,我得到了:

 * TLS 1.2 Cipher Suites:
     Attempted to connect using 156 cipher suites.

     The server accepted the following 2 cipher suites:
        TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256  

仍然运行良好,浏览器可以连接。但是现在我们想连接一个不同的服务器并在我的服务器上调用一个 REST 端点。该外部服务器不支持这两个套件中的任何一个。

我想知道,在 Spring Boot 中,为什么只接受我请求的两个套件?我在哪里可以配置这个(如果可以的话)?

提前致谢!

萨沙

标签: spring-bootssl-certificate

解决方案


是的,这比预期的要明显。

我在 yaml 文件中请求了一些密码,Spring Boot 可以处理一些套件(可能通过 JVM)。我看到的是 Spring 支持的套件和我要求的套件的交集。结果是两个。

我删除了密码限制。获得了支持密码的完整列表(大约 12 个)。然后我们选择了一种他们支持并且我可以做到的安全密码。并将其添加回“密码”。


推荐阅读