我们有一个白帽要求在我们的网络服务器上禁用TLS 1.0。
但是,当我们这样做时,我们无法再从服务器安装ClickOnce应用程序。 setup.exe已下载,但我们在启动安装程序时收到以下错误:
无法从传输连接读取数据:远程主机强行关闭现有连接。
- Source: System
- Stack trace:
at System.Net.Sockets.NetworkStream.Read()
at System.Net.FixedSizeReader.ReadPacket()
at System.Net.Security.SslState.StartReceiveBlob()
at System.Net.Security.SslState.StartSendBlob()
at System.Net.Security.SslState.ForceAuthentication()
at System.Net.Security.SslState.ProcessAuthentication()
at System.Threading.ExecutionContext.RunInternal()
at System.Threading.ExecutionContext.Run()
at System.Threading.ExecutionContext.Run()
at System.Net.TlsStream.ProcessAuthentication()
at System.Net.TlsStream.Write()
at System.Net.ConnectStream.WriteHeaders()
--- Inner Exception ---
System.Net.Sockets.SocketException
- An existing connection was forcibly closed by the remote host
- Source: System
- Stack trace:
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
使用Wireshark检查数据包显示setup.exe文件正在通过1.0发送客户端Hello消息。这是问题,因为服务器无法响应1.0消息。
我理解禁用TLS的要求相当新鲜,但谷歌上搜索的问题一事无成。
之前有没有人遇到此问题或有任何修复建议?
答案 0 :(得分:1)
我想现在用release of .net 4.6.2解决了这个问题(ClickOnce支持TLS 1.1和1.2协议)。您应该修补构建服务器(4.5.2或4.6.1)并构建您的Click Once。