我正在尝试从证书和私钥生成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版本?不同的键盘工具?
答案 0 :(得分:1)
它似乎是错误1,2。我也遇到了macOS / Java HotSpot(TM)64位服务器VM(内部版本9.0.4 + 11,混合模式)的错误:
declare
admin varchar2(4000);
user1 varchar2(4000);
begin
Admin := q'~
SELECT * INTO ADMIN FROM CI_PREFERENCE ;
~';
User1 :='~
SELECT * FROM CI_PREFERENCE WHERE EMAIL_ID = lower(:APP_USER);
~';
if :G_ADMIN = 'A' then
return admin;
else
return user1;
end if;
end;
在Ubuntu 18.10上使用OpenJDK Runtime Environment(内部版本11.0.3 + 7-Ubuntu-1ubuntu218.10.1)时,我没有收到错误消息。
我可以通过简单列出BouncyCastle密钥库来重现虚假错误:
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)