簡體   English   中英

如何為keystore創建屬性文件?

[英]how to create a properties file for keystore?

我創建了一個密鑰庫並提取了公鑰。 為了使用密鑰庫,我創建了一個keyproperties.properties文件,但我不確定名為“PRIVATE”的屬性。 無論是路徑密碼還是私鑰密碼,我都很困惑。

  1. 屬性文件 - >擴展名為.properties
  2. 數據不是來自任何地方,我使用的是靜態數據。
  3. PRIVATE->密鑰庫的路徑,用於獲取私鑰

這是我的代碼片段:

public static void main(String[] args)throws Exception {
   Properties properties = new Properties();
   String path = properties.getProperty("PRIVATE");
   KeyStore ks = KeyStore.getInstance("pkcs12", "BC");
   ks.load(new FileInputStream(path), keystore_password.toCharArray());
}

使用new Properties()創建Properties對象時,尚未在該對象中存儲任何數據。 因此,執行properties.getProperty("PRIVATE")沒有意義,因為它總是返回null

您聲稱已創建.properties文件,但我沒有看到您在任何位置加載到Properties對象中:

properties.load(new FileInputStream(readerForProperties));

現在可以使用getProperty()方法訪問.properties文件中定義的任何.properties (請參閱API文檔以了解如何創建此類文件),使用可以讀取該文件的Reader

您正在使用path變量來創建用於加載KeyStoreFileInputStream 在這種情況下,path必須是密鑰庫的路徑。

好像你復制/粘貼了一個我沒有閱讀(或至少:不理解) 文檔的例子。

在我的例子中,我使用"Private"作為屬性名稱,但這是無關緊要的。 如果您更喜歡將其命名為"pathToKS""keystore"甚至"banana" ,則可以這樣做。

就我而言,我的.properties文件如下所示:

PUBLIC      c:/examples/signatures/public.cer
ROOTCERT    c:/examples/signatures/CACertSigningAuthority.crt
PRIVATE     c:/examples/signatures/private.p12
PASSWORD    secret

所以在我的情況下, properties.getProperty("PRIVATE")將返回我的密鑰庫, properties.getProperty("PUBLIC")將返回我的公鑰, properties.getProperty("ROOTCERT")將返回證書頒發機構的公鑰, properties.getProperty("PASSWORD")將返回密鑰庫的密碼以及存儲在與我的公鑰對應的密鑰庫中的私鑰(這些密碼不必相同)。

如果您希望將路徑存儲到密鑰庫,如下所示:

banana  c:/examples/signatures/private.p12

你需要這樣做:

String path = properties.getProperty("banana");

在編寫更多代碼之前,請仔細閱讀文檔。 閱讀文檔將為您節省大量時間。

暫無
暫無

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

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