禁用TLS 1.0会破坏ClickOnce设置

时间:2015-07-01 16:33:15

标签: clickonce

我们有一个白帽要求在我们的网络服务器上禁用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的要求相当新鲜,但谷歌上搜索的问题一事无成。

之前有没有人遇到此问题或有任何修复建议?

1 个答案:

答案 0 :(得分:1)

我想现在用release of .net 4.6.2解决了这个问题(ClickOnce支持TLS 1.1和1.2协议)。您应该修补构建服务器(4.5.24.6.1)并构建您的Click Once。