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

异常消息

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 :

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" disableTLSCertificateValidation="true"/> 

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

参考文章:https://blog.youkuaiyun.com/hefeng_aspnet/article/details/145822124 

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

当你在使用NuGet时遇到错误“无法加载https://api.nuget.org/v3/index.json的服务索引,发送请求时出错,无法连接远程服务器”,这通常意味着你的开发环境无法连接NuGet的官方包。以下是一些可能的原因和解决方法: ### 可能的原因 1. **网络连接问题**:你的计算机可能无法连接到互联网,或者网络连接不稳定。 2. **防火墙或代理设置**:防火墙或代理服务器可能阻止了对NuGet的访问。 3. **DNS解析问题**:DNS服务器可能无法解析`api.nuget.org`的地址。 4. **NuGet配置错误**:NuGet的配置文件可能包含错误的地址。 ### 解决方法 1. **检查网络连接**:确保你的计算机已连接到互联网,并且网络连接稳定。 2. **配置防火墙或代理**: - 如果你在公司网络环境中,可能需要联系网络管理员,确保防火墙或代理服务器允许访问`https://api.nuget.org`。 - 如果你使用代理服务器,请在NuGet配置文件中正确配置代理设置。 3. **检查DNS解析**:尝试在浏览器中访问`https://api.nuget.org/v3/index.json`,看看是否能够成功加载。如果不能,检查你的DNS设置。 4. **更新NuGet配置**: - 打开Visual Studio,进入“工具” -> “选项” -> “NuGet管理器” -> “常规”。 - 确保默认`https://api.nuget.org/v3/index.json`已启用。 - 如果你有自定义的NuGet,确保它们配置正确。 ### 示例配置 你可以在用户目录下的`.nuget/NuGet.Config`文件中查看和编辑NuGet配置。例如: ```xml <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> <!-- 其他 --> </packageSources> <config> <add key="http_proxy" value="http://your-proxy-server:port" /> <add key="https_proxy" value="https://your-proxy-server:port" /> </config> </configuration> ``` ### 总结 通过检查网络连接、配置防火墙或代理、验证DNS解析以及更新NuGet配置,你应该能够解决无法连接NuGet的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值