【发布时间】:2015-08-20 06:54:54
【问题描述】:
我正在开发一个 TCP 客户端来连接 OpenSSL 服务器和证书认证。我使用了服务器团队共享的 .crt 和 .key 文件。这些证书由 OpenSSL 命令生成。
我正在使用SslStream 对象通过传递服务器IP、SslProtocols.Ssl3 和X509CertificateCollection 调用SslStream.AuthenticateAsClient 方法来验证Tcp 客户端。
我收到以下错误:
验证失败,因为对方已经关闭了传输流
【问题讨论】:
-
这似乎是 POODLE 后时代的一个问题:
SslProtocols.Ssl3。也许你应该试试SslProtocols.Tls。在 .Net 4.5 及更高版本中,您还可以使用Tls11或Tls12。见SslProtocols Enumeration。您可能还有其他问题。 -
谢谢。我的问题是通过从证书和密码的物理路径附加证书而不是从 Windows 证书存储中搜索证书主题名称来解决的。
-
现在我可以从所有的 SslProtocols(SSL3、Tls1 和 Tls2)中得到结果了。感谢回复
-
@Odelu,你是如何解决这个问题的?在客户端还是服务器端?
标签: .net openssl x509certificate sslstream