2015-07-01 40 views
2

我们有一个白帽要求我们的Web服务器上禁用TLS 1.0。禁用TLS 1.0休息的ClickOnce安装

然而,我们这样做的时候,我们可以不再安装在服务器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

你找到了一个解决方案吗?我有同样的问题,但我不知道该怎么做。 – Rowel

+0

类别。我们的解决方案是建立一个启用了TLS 1.0的独立Web服务器,并*只在这里托管我们的ClickOnce应用程序。这让我们在我们的主要Web服务器上关闭了TLS 1.0(这使得白帽人开心),并且没有人关心其他服务器,因为它拥有ClickOnce应用程序。 – JimShelley

+0

我尝试通过VS 2013发布设置并将项目转换为.NET 4.5,但这并没有帮助。 –

回答

1

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

+0

它是否需要使用4.6.2(或类似)构建,或者如果用较旧版本(例如4.5)构建,但安装了4.6.2,用户是否可以安装它?我们得到了不同的结果 - 我们有一个使用4.5构建的应用程序,即使安装了4.6.1,也有一些人无法安装它,但我能够做到。 – Eric