簡體   English   中英

如何跨更新保留Mac上的CAcerts密鑰庫?

[英]How to preserve the CAcerts keystore on Mac across updates?

Mac OS X在/System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts中有CA密鑰庫。 這個密鑰庫似乎被每個Java更新覆蓋,這非常煩人,因為我們有內部CA用於開發環境,測試...

有沒有辦法在Apple JSR中保留密鑰庫更改,現在,使用Snow Leo JSR3,還可以跨越單獨的Java開發人員包(其JDK使用相同的密鑰庫)的更新?

[這是過時的信息 - 請參閱下面的答案10.6+]

/System/Library/Frameworks/JavaVM.framework/Home//System/Library/Frameworks/JavaVM.framework/Home/中的Versions/CurrentJDK/Home的符號鏈接。 顯然,這將隨着新版本而改變。 使用完整路徑(例如/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home ),它不會在更新中更改。

以下參數可用於指定cacerts文件到java的位置:

-Djavax.net.ssl.trustStore=<cacerts.location>
-Djavax.net.ssl.trustStorePassword=changeit

在java主目錄(帶有內部CA)中復制cacerts並將其放在主目錄中的某個位置。 然后將完整路徑放到cacerts文件位置作為上面javax.net.ssl.trustStore屬性的值。 該副本不會被Java更新覆蓋。 默認密碼為“changeit”。

這種方法的兩個缺點是:

  • 您的文件不會獲得sdk中cacerts文件的任何更新。 如果證書頒發機構受到威脅,這主要是一個問題。
  • 無論您需要自定義cacerts(構建工具,應用服務器等),都需要指定這些參數。

在Mac OS X 10.6.8 Snow Leopard中似乎發生了變化。 現在/System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts是一個符號鏈接/System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts ,不會如果我們幸運的話,更新更新。

暫無
暫無

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

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