gpt4 book ai didi

c# - AuthenticateAsServer 不接受 PEM 格式的证书

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:59 25 4
gpt4 key购买 nike

X509CertificateCollection certCollec = 
new X509CertificateCollection(new X509Certificate[1] { xcert});

X509CertificateCollection certCollecpfx =
new X509CertificateCollection(new X509Certificate[1] { pfxCert });

SSLStream.AuthenticateAsClient(apsHost, certCollec, SslProtocols.Default, false);

certCollec 包含 PEM 格式的证书

certCollecpfx 包含 PFX 格式的证书

AuthenticateAsClient 服务器仅适用于 PFX 格式,即使 pem 和 pfx 的 X509Certificate2 对象具有完全相同的原始数据。

这是为什么?它一直告诉我对 SSPI 的调用失败:数据格式错误。

为什么它不接受 pem 格式?

然后我尝试将 pem 格式导出到 pfx,它仍然不接受它 - 同样的错误,即使我将它导出到 pfx。

byte[] pemCertBytes = pemCert.Export(X509ContentType.Pfx, "620fpass");
File.WriteAllBytes(@"C:\test\MyCert.pfx", pemCertBytes);

最佳答案

even though the X509Certificate2 object for the pem and the pfx has exactly the same raw data.

我认为只有在 pem 证书包含实际证书和私钥的情况下才是正确的。此外,它具有特定的 header ,即 BEGIN-CERTIFICATEEND-CERTIFICATE,其中包含实际内容。 pfx 或 pkcs#12 证书包含可以选择使用密码加密的证书和私钥。如果您曾经将证书导入 Windows 证书存储,您可能已经注意到它会提示您在执行此操作时输入密码,这实际上是用于加密证书的私钥。

I then tried to export the pem format into pfx and it still didn't accept it

我建议使用 openssl为此。一般语法是

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

关于c# - AuthenticateAsServer 不接受 PEM 格式的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11295839/

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