AWS 证书 - 无法识别的密钥库格式:null

AWS Certificate - Unrecognized keystore format: null

我正在尝试从证书和私钥生成 AWS IoT 证书。首先,我正在创建 PKCS12 密钥库,然后将 PKCS12 密钥库转换为 BKS (BouncyCastle) 密钥库。在执行第二步时,出现错误:

keytool error: java.security.KeyStoreException: Unrecognized keystore format: null

奇怪的是:我是第二次做,几个月前我也是用同样的方法做的,然后就成功了,所以我确定我的文件是正确的。我正在使用的命令是(此处换行只是为了便于阅读):

"C:\Program Files\Java\jdk-10.0.2\bin\keytool" 
-importkeystore 
-srckeystore beurer_keystore.p12 
-srcstoretype pkcs12 
-srcstorepass password 
-destkeystore beurer_keystore.bks 
-deststoretype bks 
-deststorepass password 
--provider org.bouncycastle.jce.provider.BouncyCastleProvider 
--providerpath bcprov-jdk15on-160.jar

这次我得到不同的结果有什么可以改变的? Java 版本不同?不同的钥匙工具?

这似乎是一个错误 1, 2。我也遇到了 macOS / Java HotSpot(TM) 64 位服务器 VM(构建 9.0.4+11,混合模式)的错误:

keytool error: java.security.KeyStoreException: Unrecognized keystore format: null
java.security.KeyStoreException: Unrecognized keystore format: null
        at java.base/java.security.KeyStore.getInstance(KeyStore.java:1815)
        at java.base/java.security.KeyStore.getInstance(KeyStore.java:1687)
        at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1308)
        at java.base/sun.security.tools.keytool.Main.run(Main.java:397)
        at java.base/sun.security.tools.keytool.Main.main(Main.java:390)

我在 Ubuntu 18.10.

上使用 OpenJDK 运行时环境(build 11.0.3+7-Ubuntu-1ubuntu218.10.1)没有收到错误

我可以通过简单地列出 BouncyCastle 密钥库来重现虚假错误:

keytool -list -v -storepass "donottell" -keystore "ssl/keystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk15on-1.61.jar" -storetype BKS