gpt4 book ai didi

java.security.cert.CertificateException : Unable to initialize

转载 作者:行者123 更新时间:2023-12-01 09:17:43 26 4
gpt4 key购买 nike

您好,我尝试验证另一个证书,但在读取文件中的第一个证书时出现错误:

//Get Public Key
BasicX509Credential publicCredential = new BasicX509Credential();
File publicKeyFile = new File("keys/azurecert.cer");

if (publicKeyFile.exists()) {
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
InputStream fileStream = new FileInputStream(publicKeyFile);
X509Certificate certificate = (X509Certificate)certificateFactory.generateCertificate(fileStream);
fileStream.close();

azurecert.cer 由我生成,其内容是从 azures (adfs) federationmetadata.xml 复制粘贴的。这是一个问题吗?

<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>
MIIC4jCC....
</X509Certificate>
</X509Data>
</KeyInfo>

我将其设置为以下格式:

—–--BEGIN CERTIFICATE--—–  
MIIDBTCCAe2gAwIBAgIQPLxWKJFunNyLetteErs/DAtQPLxWKJFunNyLMMFsdioT
MSswKQYDVQQDEyJhY2NvdW50cy5hFunNyLetteErsndpbmRvd3MubmV0XHhsStcm
....
----END CERTIFICATE----

但结果是:

java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor

行:

certificateFactory.generateCertificate(inputStream2)

有人可以帮忙吗?

最佳答案

确保您拥有正确的 header 。代替 —–BEGIN CERTIFICATE—–--END CERTIFICATE-- 使用

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

或者,您可以读取二进制格式的证书:删除 BEGIN CERTIFICATE 和 END CERTIFICATE 标签并解码 base64

关于java.security.cert.CertificateException : Unable to initialize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40418299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com