5

昨天我们的自动构建机器出现了问题。我们正在使用 TFS 构建服务器,当它尝试自动下载 NuGet 包时,我们得到了臭名昭著的“底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系”错误。

关于为什么会发生这种情况,网络上有很多线索。那不是我的问题。通过更改 NuGet 存储库,可以很容易地修复它

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

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

或者

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

我想知道的是为什么存储库首先使用 SSL?我认为它在那里是有原因的,但我不知道是什么。没有需要安全性的登录。我想不出任何需要安全的信息。我只是想确保通过使用不安全的连接(工作得很好)我们不会以某种方式损害我们的构建机器。

谁能解释使用安全连接连接到 NuGet 可以获得什么?

4

1 回答 1

9

我想不出任何需要安全的信息。

这不一定是因为您与 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 并不能解决问题。此外,该服务器缺少https://go.microsoft.com/的根 CA ,即 Baltimore Cyber​​Trust Root(访问https://microsoft.com,您将能够查看和下载证书)。将此添加到受信任的根 CA 的服务器列表中解决了该问题。

于 2013-05-03T13:48:38.113 回答