我正在创建一个web服务(在.NET 3.5中),以根据域名获取远程服务器的SSL证书信息,我有一个客户端,它是一个调用该服务的控制台应用程序。目前对我来说有11个域名。我能够获得除一个服务器之外的所有服务器的SSL信息。
我的代码是:
using (TcpClient client = new TcpClient())
{
client.Connect(strDNSEntry, 443);
SslStream ssl = new SslStream(client.GetStream(), false);
try
{
ssl.AuthenticateAsClient(strDNSEntry); //Error thrown here
}
catch (AuthenticationException e)
{
log.Debug(e.Message);
ssl.Close();
client.Close();
return cert;
}
catch (Exception e)
{
log.Debug(e.Message);
ssl.Close();
client.Close();
return cert;
}
cert = new X509Certificate2(ssl.RemoteCertificate);
ssl.Close();
client.Close();
return cert;
}
错误是
“[System.IO.IOException] = {”身份验证失败,因为远程 派对关闭了传输流。“}”。
当我在SSLStream调试期间检查时,我发现错误为“
只有使用成功通过身份验证才允许此操作 上下文中,” 的
这是因为我没有足够的凭据是否抛出错误或服务有任何问题?此外,我尝试对该服务器进行远程桌面连接,我无法进行连接。
答案 0 :(得分:0)
也许您可以使用“Windows Communication Foundation”WCF框架,并创建服务类,然后使用SSL传输配置正确配置客户端/服务器TCP绑定参数。
如果您尝试这样做,我稍后会给您一个测试用例。