keystore - 如何解决 keyStore.getEntry :多余的私钥
问题描述
请帮我解决我的问题:
当我从 keystore *.jks 获得一个条目时,出现 java.security.UnrecoverableKeyException: extra private key at keyStore.getEntry 我的证书不是自签名的。官方机构为我提供了一个 .jks。当我收到证书时,我只设置了一个密码。
FileInputStream is = new FileInputStream(keyFile);
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
String decryptedPasswd = cryptoProvider.decryptBase64(privatePasswd);
keyStore.load(is, decryptedPasswd.toCharArray());
Enumeration e = keyStore.aliases();
String alias = (String) e.nextElement();
KeyStore.ProtectionParameter protPassword =
new KeyStore.PasswordProtection(decryptedPasswd.toCharArray());
KeyStore.PrivateKeyEntry privateKeyEntry = (KeyStore.PrivateKeyEntry)
keyStore.getEntry(alias, protPassword);
当我尝试通过 keytool 更改密钥库的类型时,我在Enter key password for <pb_sign_>得到相同的异常
keytool -importkeystore -srckeystore pb_.jks -destkeystore new-store.p12 -deststoretype PKCS12
Importing keystore pb_.jks to new-store.p12...
Enter destination keystore password:
Re-enter new password:
Enter source keystore password:
Enter key password for <pb_sign_>
keytool error: java.security.UnrecoverableKeyException: excess private key
java --version
java 11.0.11 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)
解决方案
推荐阅读
- c# - Apache Ignite,缓存 ID 冲突
- perl - 返回对数组或散列的引用的子例程以及 + 运算符的作用
- c++ - 反复输入直到密码变好
- php - 在 foreach 循环中访问 xml 节点属性
- algorithm - 调度以减少平均工作(算法/非线程调度)
- responsive-design - 当我试图将两个 div 并排放置时,“col-md-6”不起作用
- angular - 我在使用 Angular 13 的 rxjs 7.4 中收到此错误“无法使用命名空间‘Observable’作为 type.ts(2709)”
- blockchain - Near-example/workshop--exploring-assemblyscript-contracts/assembly/A.sample-projects/04.token-contract/
- mysql - 用其他表中列的唯一值数填充sql表中的列
- javascript - Vue 3:`defineProps` 正在引用本地声明的变量