有很多问题(问题 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密钥库包含以下条目:
如果您想在不同的密钥库格式之间进行转换,则命令应该类似。
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