当前位置:  开发笔记 > 后端 > 正文

使用嵌入式Tomcat 7在Spring Boot中启用SSL - FileNotFoundException和oacoyote.http11.Http11NioProtocol问题

如何解决《使用嵌入式Tomcat7在SpringBoot中启用SSL-FileNotFoundException和oacoyote.http11.Http11NioProtocol问题》经验,为你挑选了1个好方法。

我正在尝试为我的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已成功启用,在构建过程中没有错误.

但是当我使用嵌入式Tomcat 7版本通过更改pom.xml文件来运行它时,如下所示:


    7.0.65

SSL未启用,我遇到以下错误:

java.io.FileNotFoundException:/tmp/tomcat.4863947968145457153.8443/file:/home/yahyaharif/spring-workspace/demossl/keystore.p12(没有这样的文件或目录)

org.apache.catalina.LifecycleException:无法启动组件[Connector [org.apache.coyote.http11.Http11NioProtocol-8443]]

org.springframework.boot.context.embedded.EmbeddedServletContainerExcepti> on:无法启动嵌入式Tomcat servlet容器

我查了一下错误,我注意到我需要在我的main中添加一个嵌入式servlet容器bean,但无济于事.

我还确保密钥库文件的文件路径是正确的.

为什么在嵌入式Tomcat 8上没有完美启用SSL,而不是在嵌入式Tomcat 7上?



1> Andy Wilkins..:

在Tomcat 8中进行了更改,以允许从嵌入式jar文件中加载密钥库.它已被移植到Tomcat 7,但在7.0.66发布之前将无法使用

如果您尝试使用期望此更改的Spring Boot版本(1.2.7或更高版本),如果不是,则会失败.我认为在Tomcat 7.0.66发布之前你有两个选择:

使用Tomcat 8

将Tomcat 7与Spring Boot 1.2.6或更早版本一起使用

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有