spring-boot - 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 中,为什么只接受我请求的两个套件?我在哪里可以配置这个(如果可以的话)?
提前致谢!
萨沙
解决方案
是的,这比预期的要明显。
我在 yaml 文件中请求了一些密码,Spring Boot 可以处理一些套件(可能通过 JVM)。我看到的是 Spring 支持的套件和我要求的套件的交集。结果是两个。
我删除了密码限制。获得了支持密码的完整列表(大约 12 个)。然后我们选择了一种他们支持并且我可以做到的安全密码。并将其添加回“密码”。
推荐阅读
- python - 快速傅里叶变换调整缩放
- javascript - 为什么要在绑定 jQuery 事件监听器之前指定“document”或“body”?
- java - JavaFX 和 Socket 之间的冲突
- powershell - 从 Powershell 访问 Bloomberg 数据许可 Web 服务
- pip - 在作业之间共享已安装的需求
- powershell - 在 PowerShell 中,有没有办法在不使用浏览器的情况下获取 URL 的文本?
- c++ - std::bind 和可变参数模板函数
- angular - Angular 6 ngrx 商店测试:无法读取未定义的 id
- salt-stack - 使用 Saltify (salt-cloud) 部署 salt-minion 时,如何在我的 minions 上“撒”自定义颗粒?
- json - 如何将整个 HTML 正文导出到嵌套 JSON