首页 > 解决方案 > 如何在 Spring Boot 中实现 1-way SSL

问题描述

我正在构建一个中间层,它将使用来自多个下游系统的信息。问题是通过 1 种方式 SSL 与他们交谈。我查找了样本,但这个概念对我来说有点神秘。请帮忙。

标签: spring-bootsslspring-security

解决方案


恕我直言,这个问题太模糊了,我将尝试提供一般性见解

答案可能会有所不同,具体取决于您组织安全部门的实际要求和您的实际 Spring Boot 配置。

Spring Boot 是一个 Java 框架,通常允许部署架构带有嵌入式 tomcat、jetty 或 undertow 服务器,这些服务器为 Spring MVC 公开的 Http 端点提供服务,或者根本没有嵌入式服务器(通常用于遗留部署)如果你处于“遗留”模式(构建一个 WAR) - 然后应该在实际服务器上而不是在 Spring Boot 应用程序中完成 HTTPs 配置。

如果您使用嵌入式服务器,那么实际的技术解决方案实际上可能取决于您在下面使用的服务器,至少在某种程度上是这样。

确实就像 Steffen Ullrich 在评论部分所说的那样,有很多这样做的例子。

例如,看看这个

如果你想将 HTTP 请求重定向到 HTTPs,你应该配置你的服务器来这样做,这个解决方案是 Tomcat 特定的。

另一件要考虑的事情是,您是否想在 Spring Boot 级别使用 SSL。也许您正在网关/某种代理下运行。在这种情况下,使用 https 从外部访问代理是有意义的,但从代理到 java 应用程序,您可以使用 HTTP。

我知道我只是在猜测这个解决方案,我只是决定提及它,因为根据我的经验,有很多组织都是这样工作的。

此外,由于 Spring Boot 用于微服务开发,因此您可能有许多 Spring Boot 工件以某种方式相互“对话”,因此在它们之间运行 HTTP 可能是多余的。


推荐阅读