visual-studio - 为什么对 NuGet 存储库使用 SSL?

标签 visual-studio nuget tfsbuild nuget-server

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

网络上有很多关于为什么会发生这种情况的线索。那不是我的问题。通过将您的 NuGet 存储库从

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


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

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

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

任何人都可以解释使用安全连接连接到 NuGet 有什么好处吗?

最佳答案

I can't think of any information being sent that would need to be secure.



这不一定是因为您与 nuget.org 交换的信息包含任何 secret ,因此需要安全。通过使用 SSL,您将确定它实际上是您正在与之交谈的 nuget.org。如果没有 SSL,理论上有人可能会向您提供假包,这可能是一个安全问题。

至于您遇到的“无法为 SSL/TLS 安全 channel 建立信任关系”的问题,当我们开始使用新的构建服务器时,我们也遇到了类似的问题:

如果您查看 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 的服务器列表中解决了该问题。

关于visual-studio - 为什么对 NuGet 存储库使用 SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16322587/

相关文章:

visual-studio - Nuget 包管理器控制台 - 包不包含 list

c# - NuGet 依赖策略

unit-testing - 在哪里放置 'useLegacyV2RuntimeActivationPolicy' 以在 TFS2012 中构建

c# - common.logging - 在应用程序配置文件中找到的重定向

tfs - 完全归档 TFS2012 项目

powershell - 从 VS Team Services 构建中运行的 Powershell 创建工作区

c++ - DLL 和 STL 以及静态数据(天哪!)

visual-studio - nUnit 测试适配器 10 秒限制 : long-running tests in nUnit

visual-studio - 从程序集信息中访问 AssemblyVersion 号以在构建后事件命令行中使用

visual-studio - 什么是增量数据库发布?