Spring引导SSL/HTTPS使用嵌入式Tomcat设置,设置密码的最佳实践



我们目前正在使用嵌入式Tomcat服务器来运行我们的Spring启动web应用程序。要启用HTTTPS,我们将在属性文件中设置与证书相关的配置。使用pom.xml,我们将其打包:

mvn clean install -P PT  # DEV, PT, UAT, Staging, DR, PROD

我们将代码打包到WAR文件中,并使用以下命令行运行应用程序:

java -jar our-spring-boot-wep.war

我读过几篇关于如何配置/启用HTTPS的在线文章,它们都使用了类似的配置方法,如下所示,无论是内部还是外部。

# Tomcat connector configuration
server.tomcat.port=8080
server.tomcat.ssl.enabled=true
server.tomcat.ssl.key-alias=cd-something.net
server.tomcat.ssl.key-store=certificates/cd-something.net.jks
server.tomcat.ssl.key-password=secret
server.tomcat.ssl.key-store-type=JKS
server.tomcat.ssl.trust-store=certificates/trustStore.jks
server.tomcat.ssl.trust-store-password=secret

有没有办法隐藏/加密密码等信息?有几种不同的环境,DEV、PT、UAT、PROD。每个环境都有自己的证书/JKS文件,配置它的最佳做法是什么?谢谢

您的配置属性必须是环境唯一的,并将共享属性放置在war中。

样品:

/resources/application.properties

server.tomcat.port=8080
server.tomcat.ssl.enabled=true
server.tomcat.ssl.key-alias=cd-something.net
server.tomcat.ssl.key-store-type=JKS

/home/app/config/application.properties

server.tomcat.ssl.key-store=certificates/cd-something.net.jks
server.tomcat.ssl.key-password=secret
server.tomcat.ssl.trust-store=certificates/trustStore.jks
server.tomcat.ssl.trust-store-password=secret

通过这种方式访问代码,只有当您有权访问运行该应用程序的服务器时,您才能看到共享属性,并且特定密码将是可读的。

我认为这种原生的方式应该有效,你可以探索一些像AWS密钥管理这样的密钥管理器。

最新更新