Spring 使用嵌入式 Tomcat 设置启动 SSL/HTTPS,设置密码的最佳实践
Spring boot SSL/HTTPS using embedded Tomcat setting, best practice on setting password
我们目前正在使用嵌入式 Tomcat 服务器来 运行 连接我们的 Spring 启动网络应用程序。为了启用 HTTPS,我们在属性文件中设置证书相关配置。使用pom.xml,我们打包:
mvn clean install -P PT # DEV, PT, UAT, Staging, DR, PROD
我们将代码打包到 WAR 文件,并从命令行 运行 应用程序使用:
java -jar our-spring-boot-wep.war
我已经阅读了几篇关于如何 configure/enable 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
有没有办法hide/encrypt密码等信息?有几种不同的环境,DEV、PT、UAT、PROD。每个 env 都有自己的 certificates/JKS 文件,配置它的最佳做法是什么?谢谢!
您的配置属性必须在环境中是唯一的,并将共享属性放在 war.
中
样本:
/resources/application.属性
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.属性
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 Key Management 等多个密钥管理器。
我们目前正在使用嵌入式 Tomcat 服务器来 运行 连接我们的 Spring 启动网络应用程序。为了启用 HTTPS,我们在属性文件中设置证书相关配置。使用pom.xml,我们打包:
mvn clean install -P PT # DEV, PT, UAT, Staging, DR, PROD
我们将代码打包到 WAR 文件,并从命令行 运行 应用程序使用:
java -jar our-spring-boot-wep.war
我已经阅读了几篇关于如何 configure/enable 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
有没有办法hide/encrypt密码等信息?有几种不同的环境,DEV、PT、UAT、PROD。每个 env 都有自己的 certificates/JKS 文件,配置它的最佳做法是什么?谢谢!
您的配置属性必须在环境中是唯一的,并将共享属性放在 war.
中样本:
/resources/application.属性
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.属性
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 Key Management 等多个密钥管理器。