【问题标题】:Could not create SSL/TLS secure channel while trying to search for NuGet packages尝试搜索 NuGet 包时无法创建 SSL/TLS 安全通道
【发布时间】:2019-11-22 11:53:17
【问题描述】:

当我在 Visual Studio 中按 NuGet 包上的“浏览”选项卡时,它显示“发生错误”并显示错误消息

[nuget.org] Unable to load the service index for source https://api.nuget.org/v3/index.json.
  An error occurred while sending the request.
  The request was aborted: Could not create SSL/TLS secure channel.

我已经使用 Visual Studio 和 NuGet 很长时间了,而 NuGet 几天前就开始工作了。有人能弄清楚为什么会发生这种情况以及我能做些什么来解决它吗?

Visual Studio 2017 版本:15.9.17

【问题讨论】:

  • 你好朋友,你有这个问题的更新吗?请尝试我的步骤,希望第二步对您有所帮助。如果有任何更新,请随时告诉我们:)
  • 我通过更改注册表项解决了这个问题,这是由另一个线程中的某个人提出的。我回来后会在这里链接。
  • @n0rd 的链接有一个适用于我的 reg 密钥的解决方法

标签: visual-studio nuget


【解决方案1】:

NuGet 有permanently removed support for TLS 1.0 and 1.1

Ensure your system uses TLS 1.2.

如果禁用 TLS 1.2 支持,请运行以下命令启用:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:32
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:64
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f /reg:32
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f /reg:64

【讨论】:

  • 起初我忽略了这个解决方案,因为我的机器中没有 TLS 1.2 注册密钥。但就我而言,添加密钥并按上述方式设置解决了问题
  • 您可能需要添加 DotNet 注册键 reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32
【解决方案2】:

我已经使用 Visual Studio 和 NuGet 很长时间了,而 NuGet 几天前正在工作。有人能弄清楚这是为什么 发生了什么,我能做些什么来解决它?

这个问题可能更多地与网络、nuget 缓存冲突甚至 nuget 代理有关。因此,有许多因素会导致这个问题。经过我的研究,许多用户都面临与您相同的问题。要解决它,请按照我的建议:

建议

  1. clean the nuget cache消除缓存干扰。

  2. 选择可用的包源(工具-->选项-->Nuget 包管理器-->包源)并添加一个新的源链接,如http://packages.nuget.org/v1/FeedService.svc/。此时,更换一个服务点,检查网络是否干扰了之前的服务链路。

  3. 尝试将代理设置添加到 Nuget.Config 文件中。有关详细信息,请参阅此链接:Nuget Config Section & Nuget Proxy Settings

更多信息可以参考this

另外,如果VS2019不是最新版本,请更新到最新版本。

如果您的问题仍然存在,请随时告诉我们。

【讨论】:

  • nuget.org 的正确包源是 https://api.nuget.org/v3/index.json。答案中提到的东西确实很古老,不应该在任何现代系统中使用。
【解决方案3】:

我遇到了同样的问题,我的解决方案是“下载证书并将其添加到 Windows 证书管理器”

  1. Certmgr.msc
  2. 在本地计算机中导入证书 -> 受信任的根证书颁发机构
  3. 重启

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 2014-12-26
    • 2017-02-10
    • 2017-08-22
    • 2016-08-03
    • 2018-06-17
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多