我正在使用一个使用SslStream来提供其SSL套接字的.Net服务器应用程序。它适用于某些客户端(例如基于libcurl的客户端),但由于缺少中间证书,其他客户端会抛出错误。如何将中间证书与SslStream或X509Certificate2对象关联以使这些客户端满意?
接受连接时,这是我现在使用的代码:
X509Certificate2 cert = new X509Certificate2("cert.pfx", "");
theSslStream.BeginAuthenticateAsServer(cert, ...);
如果我使用OpenSSL,我会使用SSL_CTX_add_extra_chain_cert()
执行此操作。我查看了X509Chain对象,但没看到如何使它适合。
感谢。
答案 0 :(得分:2)
您是否尝试将完整链包含在您正在使用的pfx中(例如,使用OpenSSL将它们全部插入)?我没有特别尝试使用SSLStream,但是WCF没有提供包含中间证书的明确方法 - 如果源.pfx中的中间证书可用,它只会自动呈现完整链。
答案 1 :(得分:1)
在.pfx文件中包含中间证书是解决方案。您可以验证是否已在http://www.sslshopper.com/ssl-checker.html
安装了所有正确的中间证书