Convert JKS to BKS using keytool

  Pi Ke        2016-07-14 03:49:52       20,103        3          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

有很多問題(問題 1問題 2)在Stack Overflow上討論如何使用Java keytool將JKS金鑰庫轉換為 BKS金鑰庫(BouncyCastle提供的金鑰庫格式)。

這個轉換問題之所以很多,是因為BKS不是Java SE支援的金鑰庫格式,它是一個第三方金鑰庫格式。要將JSK轉換為BKS,必須先下載BKS提供者。並且在執行keytool命令時需要新增一些選項。

將JKS金鑰庫轉換為BKS金鑰庫的典型命令如下所示:

keytool -importkeystore -srckeystore testkeys -srcstoretype JKS -srcstorepass passphrase -destkeystore testkeys.bks -deststoretype BKS -deststorepass password -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath [PARENT_DIRECTORY_PATH]\bouncycastle\bcprov-jdk15on-152.jar

兩個重要的選項是-provider-providerpath。 -provider選項告訴JVM BKS金鑰庫服務註冊在哪裡,-providerpath選項告訴JVM提供者可以在哪裡找到。

這樣,將JKS金鑰庫轉換為BKS金鑰庫應該沒有問題。下面顯示一個例子。

轉換前,JKS金鑰庫包含以下條目:

轉換後,BKS金鑰庫包含以下條目:

如果您想在不同的金鑰庫格式之間進行轉換,命令應該類似。

JAVA  SECURITY  JKS  KEYTOOL  BKS 

       

  RELATED


  3 COMMENTS


Anonymous [Reply]@ 2017-06-02 06:37:14

Problem importing entry for alias capistore: java.security.KeyStoreException: java.io.IOException: Error initialising store of key store: java.security.InvalidKeyException: Illegal key size.

 

I keep getting the above error, any help would be appriciated 

Ke Pi [Reply]@ 2017-06-03 04:00:06

It may relate to the limited policy strength files located in jre\lib\security. Can you try to put the unlimited strength policy files there?

Anonymous [Reply]@ 2024-02-04 05:10:02

There are any ways to convert it using java methods? For example add dependency "implementation 'org.bouncycastle:bcprov-jdk18on:1.77'" and use it for transformation?



  RANDOM FUN

After mistakenly clearing the production database