JKS到BKS密钥库

时间:2014-09-25 14:06:02

标签: java android ssl keystore

我正在尝试使用convert-keystore实用程序(https://code.google.com/p/zip-signer/downloads/detail?name=convert-keystore-1.2.zip&can=2&q=)将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 个答案:

答案 0 :(得分:3)

实际上你可以使用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:\个人\工作\ lib中\ BouncyCastle的\ bcprov-jdk15on-152.jar

答案 1 :(得分:0)

只需下载KeyStore Explorer并加载keytool提供或制作的密钥,然后进入菜单,然后选择tools-> type并选择bks

用于API <23的bks v1(如果您正在寻找用于Android的bks)

此过程无需使用keytool即可完成,只需使用KeyStore Explorer