我正在尝试将信息(以mime文件的形式)发送到使用双向身份验证的第三方主机服务器。经过多次哄骗后,我从他们的非技术服务台工作人员那里获得了足够的信息,以确定它很可能是一种TLS / SSL通信。他们使用客户端和服务器握手。我找到了以下示例: sslstream example。但是使用它时遇到问题(TcpClient拒绝查看主机地址)。
在我走得太远之前,我希望有人能指出一些好的例子或有关这个过程的更多信息。我感觉很迷茫。
答案 0 :(得分:3)
通过双向身份验证,可能意味着他们需要客户端证书。这意味着在握手期间,客户端也必须向服务器提供证书。最常见的SSL行为是只有服务器部分提供证书,例如当您转到使用HTTPS的普通站点时。
至于SslStream,它使用非常简单。为了能够提供客户端证书,您需要在证书存储区中拥有证书,或者在运行时可以将pfx文件加载到内存中。
我发现this sample似乎已经足够好了。 Here is another one。第二个不使用客户端证书,但您可以将它们作为参数添加到AuthenticateAsClient调用。
如果TcpClient拒绝查看主机地址,那么这很可能是某种连接问题,与实际的SSL实现无关。