【发布时间】:2012-07-02 14:37:55
【问题描述】:
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);
【问题讨论】:
-
如果我记得将带有私钥的证书从一种格式转换为另一种格式,您必须使用标志 X509KeyStorageFlags.Exportable 加载证书。
标签: c# ios apple-push-notifications mdm