2

我正在开发一个使用 SslStream 提供其 SSL 套接字的 .Net 服务器应用程序。它适用于某些客户端(例如基于 libcurl 的客户端),但其他客户端由于缺少中间证书而引发错误。如何将中间证书与 SslStream 或 X509Certificate2 对象关联以使这些客户满意?

这是我现在在接受连接时使用的代码:

X509Certificate2 cert = new X509Certificate2("cert.pfx", "");
theSslStream.BeginAuthenticateAsServer(cert, ...);

如果我使用 OpenSSL,我会使用SSL_CTX_add_extra_chain_cert(). 我查看了 X509Chain 对象,但不知道如何使其适合。

谢谢。

4

2 回答 2

2

您是否尝试在您正在使用的 pfx 中包含完整的链(例如,使用 OpenSSL 将它们全部插入)?我没有专门用 SSLStream 尝试过这个,但是 WCF 没有提供包含中间证书的显式方法——如果中间证书在源 .pfx 中可用,它只会自动显示完整的链。

于 2009-10-15T23:27:38.330 回答
1

在 .pfx 文件中包含中间证书是解决方案。您可以在http://www.sslshopper.com/ssl-checker.html验证是否安装了所有正确的中间证书

于 2009-10-19T12:37:34.457 回答