Java无效密钥库格式

问题描述 投票:0回答:1

我有一个使用PKCS#8编码格式的私钥作为.pem(和.cert)文件。

如果我尝试调用以下方法:

 private KeyStore getKeyStore() throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException{
     String ks = keystores.get(service);
     KeyStore keyStore = KeyStore.getInstance("JKS");
     keyStore.load(new Base64InputStream(new ByteArrayInputStream(ks.getBytes())), "secret".toCharArray());
     return keyStore;
 }

我在第4行“ keystore.load ...”处收到错误:

Caused by: java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source) ~[na:1.8.0_211]
at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source) ~[na:1.8.0_211]
at sun.security.provider.KeyStoreDelegator.engineLoad(Unknown Source) ~[na:1.8.0_211]
at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(Unknown Source) ~[na:1.8.0_211]
at java.security.KeyStore.load(Unknown Source) ~[na:1.8.0_211]
at java_security_KeyStore$load$0.call(Unknown Source) ~[na:na]

我该如何解决此问题?我读到Java不支持PKCS#8编码格式...

如果我尝试像这样手动导入密钥:

keytool -import -alias *alias* -keystore cacerts -file *cert.pem*

我收到此错误:

keytool error: java.lang.Exception: Input not an X.509 certificate

我尝试在openssl中将pkcs8转换为x509(在windwos中为openvpn)...不成功。

它与旧密钥一起使用。如果我用新的私钥替换了旧密钥,那么它将失败。

我该如何解决此错误?

我有一个使用PKCS#8编码格式的私钥作为.pem(和.cert)文件。如果我尝试调用以下方法:私有KeyStore getKeyStore()引发KeyStoreException,NoSuchAlgorithmException,...

java-8 keystore x509 keytool pkcs#8
1个回答
0
投票

我的错误:我尝试添加私钥的内容(作为字符串)。正确的方法:

© www.soinside.com 2019 - 2024. All rights reserved.