问题描述
我已经在外部 tomcat 的 server.xml 中的 Connector 标记中配置了我的 trustsore 和 keystore 信息。证书存储在 tomcat 的 /base/lib 目录中。 我需要将 Spring Boot 应用程序部署到这个外部 tomcat。
- 如何使有关 trustsore 和密钥库的信息可供 Spring Boot 应用程序使用?
- 我需要在 Spring Boot 应用程序中的哪个位置存储 trsustore 和 keystore .jks 文件?
我对 server.xml 中 Resource 标签中的数据源做了同样的处理,在 spring boot 应用程序中我使用了 spring.datasource.jndi-name=jndi 的一些名称。如何为 trsustore 和 keystore 配置相同的内容?
解决方法
Tomcat 的 projects/_/buckets/my_bucket_name
中的密钥库和信任库有一个目的:
- 密钥库包含服务器 SSL 端口使用的证书(和私钥),
- 信任库包含 CA 列表,如果启用 mutual SSL authentication,这些 CA 是可信的。
因此,这些设置特定于您的应用程序的每个部署。你不应该自己提供它们。
您应该只向系统管理员提供配置这些设置的方法。在您的情况下,Spring Boot 已经处理好了(参见 server.ssl properties)。