簡體   English   中英

Spring 開機 | 使用動態密鑰庫/信任庫

[英]Spring Boot | Use dynamic keystore/truststore

我需要在我的 Spring 引導應用程序中使用動態密鑰庫,因為在任何時候我都可能不得不更改它們並且我不想有任何停機時間。

從我看到的這篇文章來看,我有三個選擇:

  • 編寫自定義 KeyManager;
  • 使用反向代理;
  • 或者在 Tomcat 上使用本地 JMX 重新加載 SSL 上下文。

在最后一個我真的不明白這意味着什么。 反向代理似乎更簡單,但它是最好的方法嗎?

如果有人能指出哪一個是最好的解決方案,以及為什么或推薦其他東西,將不勝感激。

外部反向代理方法是最靈活的。 它不需要對您的應用程序或部署邏輯進行任何更改,並且可以解決大多數情況。 缺點是您的架構變得更加復雜,並且代理服務器需要額外的服務器資源。

您可以更進一步,進行藍綠部署

藍綠部署方法通過確保您擁有兩個盡可能相同的生產環境來做到這一點。 在任何時候,其中一個,例如藍色,是實時的。 當您准備軟件的新版本時,您將在綠色環境中進行最后階段的測試。 一旦軟件在綠色環境中運行,您切換路由器,以便所有傳入請求 go 到綠色環境 - 藍色的現在空閑。

您可以擁有自己的SslStoreProvider實現,這將使您能夠從您想要的任何來源獲取密鑰庫/信任庫(不需要在磁盤上)。 然后檢查@RefreshScope你可以用它重新創建 bean(比如你自己的SslStoreProvider )。

在這里您可以找到一個示例(請注意,這只是為了演示 spring-boot 1.x 中的一個錯誤,該錯誤已在 2.x 中修復)。

暫無
暫無

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

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