关于如何在tomcat或spring引导应用程序中的应用程序级别设置HTTPS,有数千篇文章。但是,我没有找到为已经配置了HTTPS的应用程序配置tomcat的方法。
通过配置以下属性,我已经将我的spring引导应用程序设置为在HTTPS上运行:
server.port=7070
server.ssl.enabled=true
server.ssl.key-store-password=my_password
server.ssl.key-store-type=PKCS12
server.ssl.key-store=keystore-path
server.ssl.key-alias=key_alias当我运行我的IDE(Intellij)并在我的机器上的https://localhost:7070上服务时,它完美地工作了。另一方面,当我把我的应用程序部署到tomcat中时。它运行在server.xml连接器上定义的tomcat端口上。例如:
<Connector port="7071" protocol="HTTP/1.1" connectionTimeout="20000" />这样,tomcat中的连接器端口将重写application.properties上的端口号。因此,如果我想在tomcat中的HTTPS中运行我的应用程序,文档说我需要定义一个新的连接器,例如:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>或
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
certificateFile="conf/localhost-rsa-cert.pem"
certificateChainFile="conf/localhost-rsa-chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>但这些方法,我必须配置我的钥匙,密码,别名,和.又是在我的猫里。
我想知道还有什么别的方法可以避免重新配置我的钥匙,密码和..。又是在猫里?
发布于 2022-07-26 06:25:50
不,没有别的办法了。只有在嵌入式容器中运行应用程序时才应用server.*属性。部署到现有Tomcat实例时,不使用它们。
https://stackoverflow.com/questions/73118557
复制相似问题