> 技术文档 > Visual Studio 2022 NUGET NU1301 无法加载源 基础连接已关闭:无法建立SSL / TLS安全通道的信任关系;根据验证过程,远程证书无效。_管理nuget程序包基础连接已经关闭

Visual Studio 2022 NUGET NU1301 无法加载源 基础连接已关闭:无法建立SSL / TLS安全通道的信任关系;根据验证过程,远程证书无效。_管理nuget程序包基础连接已经关闭


异常消息

ERROR NU1301:

无法加载源 https://api.nuget.org/v3/index.json 的服务索引。
发送请求时出错。
基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。
根据验证过程,远程证书无效。

这种错误,对于本人,什么改DNS,改hosts文件,同步时间、代理、导入证书、目录大小写问题等都无法解决;下面列举一些方法,本文使用方法6解决NUGET NU1301 无法加载源 基础连接已关闭 问题,希望下面方法对你有帮助。 

解决方法

1、导出导入证书 

问题描述

缺少证书,需要在安装证书,手动下载nuget.org的证书,然后导入系统受信任证书即可。

解决方案

点击安装证书=》本地计算机=》下列存储,选择受信任的根证书颁发机构,安装完成之后再去请求接口就可以了。

打开https://www.nuget.org/ 网站:

点击锁头图标 - 连接是安全的 - 证书有效:

默认显示基本信息 - 点击详细信息 - 导出:

保存到你指定的位置: 

WIN + R 运行 mmc:

点击文件 - 添加/删除管理单元: 

点击证书 - 添加 

选择计算机帐户 - 下一步: 

选择本地计算机 - 完成 - 确定 

受信任人右键 - 所有任务 - 导入 :

导入之后如下: 

2、修改注册表

        1、关闭VS,删除C:\\Users\\xxx\\AppData\\Roaming\\NuGet下的整个nuget.config文件,然后重新启动VS以re-generate它。然后,再次尝试安装nuget包。
        2、以管理员身份打开powershell,运行以下操作:

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

        3、重新启动VS以再次测试。
备注:也有可能是网络问题,某些网络会导致这个问题,如果你本地有多个网络你可以切换网络试试。

3、添加新的源 

Visual Studio 2022 - 工具 -选项: 

点击右上方加号: 

点击确定即可,如果不想使用原有的nuget.org源,把前面的复选框勾选掉即可。

4、拷贝.nuget文件夹 

        将项目拷贝到无联网的电脑上用VS打开时,会出现nuget还原失败的情况,只需要把原电脑中的用户文件夹下的.nuget文件夹拷贝过去,放到对应路径下即可 

5、nuget 本地包路径不能含有大写字符

Vs2022 nuget 本地包路径不能含有大写字符,否则会报错NU1301 

6、禁用 HTTPS 服务器的 SSL/TLS 证书验证 

打开Visual Studio 2022 - 工具 - 选项:

找到 NuGet 包管理器 - 点击右侧配置文件第一行 - 点击下面打开: 

添加属性 disableTLSCertificateValidation :

 

解释:disableTLSCertificateValidation 此配置属性允许禁用 HTTPS 服务器的 SSL/TLS 证书验证。 如果设置为 true,服务器将忽略与 SSL/TLS 证书相关的任何错误(例如,过期证书或自签名证书),并在未进行验证的情况下建立连接。 在 NuGet 6.11 及以上版本中受到支持。 

参考文章:https://blog.csdn.net/hefeng_aspnet/article/details/145822124 

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。