2014-09-25 108 views
1

我想使用convert-keystore實用程序(https://code.google.com/p/zip-signer/downloads/detail?name=convert-keystore-1.2.zip&can=2&q=)將JKS密鑰庫轉換爲BKS密鑰庫。JKS到BKS密鑰庫

上執行

> java -jar convert-keystore-1.2.jar server.keystore.jks server.keystore.bks 

我收到以下錯誤的命令:

>java.security.KeyStoreException: java.lang.NullPointerException 
    at org.bouncycastle.jce.provider.JDKKeyStore.engineSetKeyEntry(Unknown Source) 
    at java.security.KeyStore.setKeyEntry(KeyStore.java:880) 
    at kellinwood.keystore.Convert.main(Convert.java:89) 

密鑰庫是經Java密鑰工具創建:

keytool -genkey -alias myAlias -keyalg RSA -keysize 2048 -keystore server.keystore -validity 10000

生成的CSR從此密鑰存儲區使用:

keytool -certreq -v -alias myAlias -file naavis_public.csr -keypass changeit -keystore server.keystore -storepass changeit

然後我導入證書從Thawte的:

keytool -import -trustcacerts -alias SSL -keystore server.keystore.jks -file ssl.crt

>keytool -import -trustcacerts -alias INTERMEDIATE -keystore server.keystore.jks -file intermediate.crt 

>keytool -import -trustcacerts -alias ROOT -keystore server.keystore.jks -file root.crt 

這種經歷沒有任何錯誤,我能夠在我的應用程序使用該密鑰庫。

請指導。 我正在使用Java 1.6.45並擁有正確版本的「java無限強度策略文件」。密鑰庫也是在相同的java版本上創建的。

在Java 1.7.55上也試過了這個過程。它會產生相同的錯誤。

回答

2

其實你可以使用Oracle JDK提供的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 C:\Personal\Work\lib\bouncycastle\bcprov-jdk15on-152.jar

相關問題