首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Spring Java应用程序找不到keystore文件

Spring Java应用程序找不到keystore文件
EN

Stack Overflow用户
提问于 2019-03-27 03:02:18
回答 1查看 9.6K关注 0票数 5

我正在尝试设置一个简单的Spring应用程序来使用SSL,并将其托管在Digital Ocean上。为什么我的应用程序找不到keystore文件?

我设置的droplet是基于Ubuntu 18.04的。我使用Letsencrypt获取证书,使用this指南生成PKCS文件。我将我的application.properties文件设置为在jar文件的当前目录中查找,如下所示:

代码语言:javascript
复制
security.require-ssl:true
server.ssl.key-store:keystore.p12
server.ssl.key-store-password:<password>
server.ssl.key-store-type:PKCS12
server.ssl.key-alias:<alias>

我希望它能在配置的端口上运行并启动一个web服务器。但是,我在堆栈跟踪中得到的是:

代码语言:javascript
复制
Caused by: java.io.FileNotFoundException: /root/software/gimmememe/target/keystore.p12  (No such file or directory)

奇怪的是,当我在自己的Windows机上用同样的keystore.p12文件运行同样的jar文件时,它运行得很好:

代码语言:javascript
复制
o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 9123 (https) with context path ''
meme.Application                         : Started Application in 4.985 seconds (JVM running for 5.464)

我不认为这是Ubuntu机器上的权限问题,因为我尝试这样设置keystore文件上的权限:

代码语言:javascript
复制
-rw-r--r-- 1 root root     4274 Mar 26 18:44 keystore.p12

我正在使用以下命令运行我的jar文件(也尝试使用sudo infront ):

代码语言:javascript
复制
java -jar gimme-meme-1.0.0.war
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-06 01:36:05

Spring从类路径加载文件,这是允许的,因此您应该在路径前加上该classpath:,例如

代码语言:javascript
复制
server.ssl.key-store : classpath:keystore.p12

或者,如果您使用=符号作为键/值分隔符:

代码语言:javascript
复制
server.ssl.key-store = classpath:keystore.p12

请记住,该值仅在左侧修剪,因此在该值之后不能有任何尾随空格。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55364537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档