【发布时间】:2023-03-09 17:53:01
【问题描述】:
我正在尝试为我的 Spring Boot 应用程序启用 SSL 以进行测试。我用这个命令行生成了一个密钥库文件:
keytool -genkey -alias tomcat
-storetype PKCS12 -keyalg RSA -keysize 2048
-keystore keystore.p12 -validity 3650
并将以下配置添加到我的 application.properties 文件中:
server.port=8443
server.ssl.key-store: keystore.p12
server.ssl.key-store-password: mypassword
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat
当我使用嵌入式 Tomcat 8 版本运行应用程序时,SSL 已成功启用,并且在构建过程中没有错误。
但是当我通过如下更改 pom.xml 文件使用嵌入式 Tomcat 7 版本运行它时:
<properties>
<tomcat.version>7.0.65</tomcat.version>
</properties>
SSL 未启用,我遇到以下错误:
java.io.FileNotFoundException: /tmp/tomcat.4863947968145457153.8443/file:/home/yahyaharif/spring-workspace/demossl/keystore.p12(没有这样的文件或目录)
org.apache.catalina.LifecycleException: 无法启动组件 [连接器[org.apache.coyote.http11.Http11NioProtocol-8443]]
org.springframework.boot.context.embedded.EmbeddedServletContainerExcepti> on: 无法启动嵌入式 Tomcat servlet 容器
我查看了错误并注意到我需要将一个嵌入式 servlet 容器 bean 添加到我的 main 中,但无济于事。
我还确保密钥库文件的文件路径正确。
关于为什么在嵌入式 Tomcat 8 而不是嵌入式 Tomcat 7 上完美启用 SSL 的任何线索?
【问题讨论】:
标签: tomcat ssl spring-boot tomcat7 pom.xml