我们目前正在使用嵌入式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密钥管理这样的密钥管理器。