簡體   English   中英

如何在 spring application.properties 中指定我的 ssl 密鑰庫文件的本地文件路徑?

[英]How do I specify local file path to my ssl keystore file in spring application.properties?

鑒於我在c:\\path\\to\\file\\keystore.jks

我的 application.properties 文件包含server.ssl.key-store=c:\\path\\to\\file\\keystore.jks

我收到以下異常java.io.FileNotFoundException: C:\\Windows\\Temp\\tomcat.2910824355292831382\\file:\\c:\\path\\to\\file\\keystore.jks (The filename, directory name, or volume label syntax is incorrect)

指定路徑的正確方法是什么?

不要依賴絕對路徑。 將文件放入與 Spring Boot JAR 相同的目錄中,並將此行添加到您的 application.properties 中:

server.ssl.key-store=file:keystore.jks

第二個選項是將系統變量傳遞給-Dserver.ssl.key-store=file:keystore.jks

下面使用 Tomcat 8.5.2 為我工作:

窗戶:

server:
  ssl:
    key-store: file:C:\<complete file path with extension>

Linux:

server:
  ssl:
    key-store: file:/J2EE/<complete file path with extension>

當我進行這些更改時,這對我有用:

  1. 將tomcat的版本設置為8.5.20
  2. 將屬性更改為:file:path

檢查 spring boot 正在使用哪個版本的 tomcat。 根據這個 github issue低於 7.0.66 的 tomcat 版本相對化 server.ssl.key-store 設置。

放置file:對我來說不適用於相對路徑。 總之:

如果您將密鑰庫放在您的資源中,您可以這樣做:

key-store: classpath:keystore.jks

但是,如果您嘗試這樣做:

key-store: file:keystore.jks

你會得到:

java.lang.IllegalStateException: no valid keystore

所以,相反,只需這樣做:

key-store: keystore.jks

奇怪的是,如果您提供完整路徑(不是相對路徑),那么file:仍然有效。

只需對密鑰庫文件路徑使用引號

server:
  port: 8443
  ssl:
    enabled: true
    key-store: "/path/to/keystore/keystore.jks"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM