我正在尝试设置一个简单的 Spring 应用程序来使用 SSL 并将其托管在 Digital Ocean 上。为什么我的应用程序找不到密钥库文件?
我设置的 Droplet 基于 Ubuntu 18.04。我使用 Letscrypt 来获取证书并this https://dzone.com/articles/spring-boot-secured-by-lets-encrypt生成 PKCS 文件的指南。我已经将 application.properties 文件设置为在 jar 文件的当前目录中查找,如下所示:
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 服务器。但是,我在堆栈跟踪中得到的是:
Caused by: java.io.FileNotFoundException: /root/software/gimmememe/target/keystore.p12 (No such file or directory)
奇怪的是,当我在自己的 Windows 计算机上运行具有相同 keystore.p12 文件的相同 jar 时,它运行良好:
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 机器上的权限问题,因为我尝试在密钥库文件上设置权限,如下所示:
-rw-r--r-- 1 root root 4274 Mar 26 18:44 keystore.p12
我正在使用以下命令运行我的 jar 文件(也尝试使用 sudo infront ):
java -jar gimme-meme-1.0.0.war