2013-05-01 46 views
5

昨天我們的自動生成機器出了問題。我們使用的是TFS Build服務器,當它試圖自動下載NuGet軟件包時,我們得到了臭名昭着的「底層連接已關閉:無法建立SSL/TLS安全通道的信任關係」錯誤。爲什麼在NuGet存儲庫中使用SSL?

圍繞「淨」這個問題發生了很多線索。這不是我的問題。它可以很容易地固定足以改變你的NuGet庫從

https://nuget.org/api/v2/ 

http://nuget.org/api/v2/ 

http://packages.nuget.org/v1/FeedService.svc/ 

我想知道是什麼原因,倉庫在使用SSL中第一個地方?我認爲這是有原因的,但我無法弄清楚什麼。沒有需要安全性的登錄。我想不出任何需要保密的信息。我只是想確保通過使用不安全的連接(工作得很好),我們不會損害我們的構建機器。

任何人都可以解釋從使用安全連接連接到NuGet獲得了什麼嗎?

回答

8

我想不出任何信息被髮送,將需要 安全。

這不一定是因爲您與nuget.org交換的信息包含任何祕密因而需要安全。通過使用SSL,您將確定它實際上是您正在與之交談的nuget.org。如果沒有SSL,理論上可能有人會給你提供虛假軟件包,這可能是一個安全問題。

至於你與遇到的問題「無法建立信任關係爲SSL/TLS安全通道」,我們也有類似的問題,當我們開始使用一個新的構建服務器:

如果您查看https://nuget.org/提供的SSL證書,則認證路徑爲:GeoTrust Global CA> RapidSSL CA> * .nuget.org

GeoTrust Global CA在我們的新構建服務器上缺少可信CA,所以問題通過將它們添加到受信任的根CA的構建服務器列表中(使用帶有「證書」管理單元的MMC控制檯)很容易解決。

更新:
在以後的服務中,我經歷了同樣的SSL問題,並加入GeoTrust的爲可信CA本身並不解決問題。在此外,服務器也失蹤根CA爲https://go.microsoft.com/,這是巴爾的摩Cyber​​Trust根(去https://microsoft.com,您將能夠查看和下載證書)。將此添加到受信任根CA的服務器列表解決了該問題。

相關問題