2015-07-01 35 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