- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于 Heartbleed ,我们的网关服务器已更新,这个问题就出现了。
由于 POODLE ,不再支持 SSLv3。
客户端应用程序 (.NET 2.0) 位于 Windows 7(或 8)机器上。服务器在网关服务器后面的 DMZ 内运行。请注意,我发现这个问题在 .NET 4.0+ 上不再存在 - 但是由于遗留代码,我没有更新的余地。
网关服务器是运行带有 SSL 的 Apache HTTP 服务器的直通盒。它的位置在DMZ之外,用于访问DMZ内部的服务器。网关服务器上运行的软件版本为 Apache/2.2.25 (Win32)、mod_jk/1.2.39、mod_ssl/2.2.25、OpenSSL/1.0.1g
这是客户端应用程序上使用的代码(添加了大量日志记录)...注意,“serverName”通常包含诸如“https://some.url.com”之类的值
private bool ConnectAndAuthenicate(string serverName, out TcpClient client, out SslStream sslStream)
{
client = null;
sslStream = null;
try
{
client = new TcpClient(serverName, 443); // Create a TCP/IP client; ctor attempts connection
Log("ConnectAndAuthenicate: Client CONNECTED"));
sslStream = new SslStream(client.GetStream(), false, ValidateServerCertificate, null);
Log("ConnectAndAuthenicate: SSL Stream CREATED"));
}
catch (Exception x)
{
Log("ConnectAndAuthenicate: EXCEPTION >> CONNECTING to server: {0}", x.ToString()));
if (x is SocketException)
{
SocketException s = x as SocketException;
Log("ConnectAndAuthenicate: EXCEPTION >> CONNECTING to server: Socket.ErrorCode: {0}", s.ErrorCode));
}
if (client != null) { client.Close(); client = null; }
if (sslStream != null) { sslStream.Close(); sslStream = null; }
}
if (sslStream == null) return false;
try
{
sslStream.ReadTimeout = 10000; // wait 10 seconds for a response ...
Log("ConnectAndAuthenicate: AuthenticateAsClient CALLED ({0})", serverName));
sslStream.AuthenticateAsClient(serverName);
Log("ConnectAndAuthenicate: AuthenticateAsClient COMPLETED SUCCESSFULLY"));
return true;
}
catch (Exception x)
{
Log("ConnectAndAuthenicate: EXCEPTION >> AuthenticateAsClient: {0}", x.ToString()));
client.Close(); client = null;
sslStream.Close(); sslStream = null;
}
return false;
}
注意 - answers posted与 ServicePointManager 相关的内容对此应用程序的结果绝对没有影响。
当应用程序在 Win 7+ 机器上运行时,每次调用 AuthenicateAsClient() 时,都会发生异常 - 如果应用程序在 WinXP 机器上运行,则代码可以正常工作,不会出现异常。
非常欢迎任何解决方案的想法。
最佳答案
按照设置 ServicePointManager.SecurityProtocol 的轨迹带有 SecurityProtocolType 的静态 ctor ,我发现提到了另一个名为 SslPolicy 的枚举 - 进一步的研究发现 AuthenicateAsClient has an overload以 SslPolicy 作为参数。
更改上面代码中的这一行可以解决此问题:
sslStream.AuthenticateAsClient(serverName, null, SslPolicy.Tls, false);
关于c#-2.0 - AuthenticateAsClient : System. IO.IOException:从传输流接收到意外的 EOF 或 0 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414907/
我目前正在尝试使用 TcpClient 连接到 FTP 服务器。 为了使用 FTPS 作为协议(protocol),我通过 NetworkStream 处理一个单独的方法,该方法使用该方法创建一个 S
SslStream.AuthenticateAsClient 和 SslStream.AuthenticateAsServer 方法有什么区别? 我应该什么时候使用什么? 我检查了很多例子。但是我不明
当我在 IE 中手动导入证书(工具/Internet 选项/内容/证书)时,我的 C#.NET SSL 连接工作正常,但是如何通过代码加载证书?这是我的代码: TcpClient client = n
我正在开发一个 .NET 服务,它试图与服务器建立安全连接。该服务事先不知道服务器是否支持安全连接。这就是为什么我只是尝试建立安全连接,如果失败,我将回退到不安全的连接。 我正在使用 TcpClien
我正在尝试使用 SslStream 连接到服务器。服务器所有者向我提供了一个 PFX 文件,我已将其安装在我的客户端上,但我不确定如何从我的代码访问该证书。 具体来说,假设我有以下代码... var
我遇到了奇怪的问题。我正在尝试通过 TCP/SSL 连接到 Apple 服务器。我正在使用 Apple 提供的客户端证书进行推送通知。我在本地受信任的根证书和本地个人证书文件夹中的服务器 (Win2k
我连接的服务器最近更改了它的 SSL 证书。自更改以来,在下载证书吊销列表时,SSL 身份验证需要超过 10 秒的时间才能完成。 我正在使用 RemoteCertificateChainCallbac
首先有一些背景 调用SslStream.AuthenticateAsClient()发起TLS / SSL握手后,可以在下面的“ Windows安全性”对话框中向用户显示: Windows安全性:此应
我正在使用 Unity5 中的安全套接字(在 C# 中)开发一个应用程序,以允许服务器将信息推送到客户端。我想为此使用 Socket 和 SSLStream,以确保通信安全。 我有一个弹性 beant
我最近在将套接字通信转换为使用 System.Net.Security.SslStream 而不是 NetworkStream 时遇到了一个问题。此转换针对 .Net Framework 4.8 项目
我有一个由 SslStream.AuthenticateAsClient 调用的 RemoteCertificateValidationCallback 函数,它传递了一个 X509Certifica
我有一些 SSL 客户端代码 (C#),如下所示: X509Certificate2 cert = new X509Certificate2(@"client.pfx"); X509Certifica
我在使用 Apple 推送通知提供程序 (apns-sharp) 时收到以下异常。 推送通知在我的开发机器上工作,但它在 Rackspace 云托管中不起作用。我有与我的开发人员一起运行的确切 Rac
由于 Heartbleed ,我们的网关服务器已更新,这个问题就出现了。 由于 POODLE ,不再支持 SSLv3。 注意,该问题仅出现在 Win7+ 机器上; WinXP 盒子工作没有问题(相同的
我是一名优秀的程序员,十分优秀!