2013-05-01 48 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的服务器列表解决了该问题。

相关问题