通过嵌入Tomcat 7-FileNotFoundException和o.a.coyote.http11.Http11NioProtocol问题在Spring引导中启用SSL
我正在尝试为我的Spring Boot应用程序启用SSL以进行测试。我使用以下命令行生成了一个密钥库文件:通过嵌入Tomcat 7-FileNotFoundException和o.a.coyote.http11.Http11NioProtocol问题在Spring引导中启用SSL,tomcat,ssl,spring-boot,tomcat7,pom.xml,Tomcat,Ssl,Spring Boot,Tomcat7,Pom.xml,我正在尝试为我的Spring Boot应用程序启用SSL以进行测试。我使用以下命令行生成了一个密钥库文件: keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 并将以下配置添加到my application.properties文件中: server.port=8443 server.ssl.key-store: keyst
keytool -genkey -alias tomcat
-storetype PKCS12 -keyalg RSA -keysize 2048
-keystore keystore.p12 -validity 3650
并将以下配置添加到my 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>
7.0.65
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容器
我查找了错误,注意到我需要在我的main中添加一个嵌入式servlet容器bean,但没有效果
我还确保密钥库文件的文件路径是正确的
关于为什么在嵌入式Tomcat 8上而不是在嵌入式Tomcat 7上完美地启用SSL的任何线索?在Tomcat 8中进行了更改,以允许从嵌入式jar文件中加载密钥库。它已经发布,但在7.0.66发布之前将不可用 如果您尝试使用一个SpringBoot版本,该版本预期会有此更改(1.2.7或更高版本),那么如果没有,它将失败。在Tomcat 7.0.66发布之前,我认为您有两个选择:
- 使用Tomcat8
- 将Tomcat 7与Spring Boot 1.2.6或更早版本一起使用