【发布时间】:2019-06-06 21:47:30
【问题描述】:
我有一个在启用 SSL 的 HTTPS 上运行的简单 Spring Boot 应用程序
application.properties
server.port=8443
server.ssl.key-store=${SERVER_KEYSTORE}
server.ssl.key-store-password=${SERVER_KEYSTORE_PASSWORD}
其中SERVER_KEYSTORE 和SERVER_KEYSTORE_PASSWORD 是系统环境变量
我使用mvn clean package 生成jar,然后运行可执行文件jar。但是我收到以下错误
***************************
APPLICATION FAILED TO START
***************************
Description:
The Tomcat connector configured to listen on port 8444 failed to start. The port may already be in use or the connector may be misconfigured.
Action:
Verify the connector's configuration, identify and stop any process that's listening on port 8444, or configure this application to listen on another port.
我已确认端口 8443 未被任何应用程序使用。
现在,当我将application.properties 重写为
server.port=8443
server.ssl.key-store=/etc/ssl.keystore
server.ssl.key-store-password=secret
应用程序使用 HTTPS 在端口 8443 上运行良好。但我不想在我的代码库中包含路径和密码部分。
我什至尝试将 env 文件的完整路径指定为
server.ssl.key-store=/etc/environment/${SERVER_KEYSTORE}
server.ssl.key-store-password=/etc/environment/${SERVER_KEYSTORE_PASSWORD}
还是报同样的错误
我们将不胜感激。谢谢
【问题讨论】:
-
当你的 props 文件显示
8443时,我想知道为什么端口8444出现错误。 -
SERVER_KEYSTORE和SERVER_KEYSTORE_PASSWORD的值是多少? -
你说它适用于
/etc/ssl.keystore,但不适用于/etc/environment/${SERVER_KEYSTORE}。好吧,这不是同一条路径,那么您为什么希望它适用于不同的路径呢?
标签: java spring-boot environment-variables