怀念夏天 发表于 2025-3-18 00:18:49

Visual Studio 2022 NUGET NU1301 无法加载源 基础连接已关闭:无法创建SSL

异常消息

ERROR NU1301:
无法加载源 https://api.nuget.org/v3/index.json 的服务索引。
发送请求时出错。
基础连接已经关闭: 未能为 SSL/TLS 安全通道创建信任关系。
根据验证过程,远程证书无效。
这种错误,对于本人,什么改DNS,改hosts文件,同步时间、代理、导入证书、目次大小写题目等都无法解决;下面罗列一些方法,本文使用方法6解决NUGET NU1301 无法加载源 基础连接已关闭 题目,希望下面方法对你有帮助。 
解决方法

1、导出导入证书 

题目描述

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

点击安装证书=》本地计算机=》下列存储,选择受信任的根证书颁发机构,安装完成之后再去请求接口就可以了。
打开https://www.nuget.org/ 网站:
https://i-blog.csdnimg.cn/direct/81c031e7b5904af8b5ee972121032f21.png
点击锁头图标 - 连接是安全的 - 证书有效:
https://i-blog.csdnimg.cn/direct/c44e10cb0de141199a5339290adc96a4.png
https://i-blog.csdnimg.cn/direct/f6443b04ba444bb09dcea4208f094acd.png
默认显示基本信息 - 点击详细信息 - 导出:
https://i-blog.csdnimg.cn/direct/75cf338223584467a90c1268a1505086.png
https://i-blog.csdnimg.cn/direct/446e232edbd74afeaa94be5f6d81c7fd.png
保存到你指定的位置: 
https://i-blog.csdnimg.cn/direct/a477b8c9876a4254a9cda39d4474fdc9.png
WIN + R 运行 mmc:
https://i-blog.csdnimg.cn/direct/be7e60245a6f434398440ae53310aff5.png
点击文件 - 添加/删除管理单元: 
https://i-blog.csdnimg.cn/direct/10125bcf5d054282965903b3fb4dc3d4.png
点击证书 - 添加 
https://i-blog.csdnimg.cn/direct/a96ab09c986d4080b6fbbd975e4108d3.png
选择计算机帐户 - 下一步: 
https://i-blog.csdnimg.cn/direct/8082cefa5c254f259d2b873a93f7d672.png
选择本地计算机 - 完成 - 确定 
https://i-blog.csdnimg.cn/direct/793399d1f345496991005788a34dc79d.png
https://i-blog.csdnimg.cn/direct/1138246a099f4ad8ba72c3c84c353b7d.png
受信任人右键 - 全部任务 - 导入 :
https://i-blog.csdnimg.cn/direct/0832aa09f52c4794b4265fbc59cb5cff.png
https://i-blog.csdnimg.cn/direct/f0e2ddf6ae924ccfa53c71e1ea9b98a3.png
https://i-blog.csdnimg.cn/direct/25cb611f00634a888ff2d9bdd3da6539.png
导入之后如下: 
https://i-blog.csdnimg.cn/direct/db33a0a2d07b4d2b8e4e1220749c7dfc.png
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 - 工具 -选项: 
https://i-blog.csdnimg.cn/direct/11686e7b87c74ee1865611077c235c09.png
https://i-blog.csdnimg.cn/direct/cfaf8ead3ddd4742825920f4e8ed70ab.png
点击右上方加号: 
https://i-blog.csdnimg.cn/direct/8c5577163d0c4b018c075f24003c0fbb.png
点击确定即可,如果不想使用原有的nuget.org源,把前面的复选框勾选掉即可。
4、拷贝.nuget文件夹 

        将项目拷贝到无联网的电脑上用VS打开时,会出现nuget还原失败的环境,只需要把原电脑中的用户文件夹下的.nuget文件夹拷贝过去,放到对应路径下即可 
https://i-blog.csdnimg.cn/direct/a34bb2eeb83f4d7ab679a4b185ae774c.png
5、nuget 本地包路径不能含有大写字符

Vs2022 nuget 本地包路径不能含有大写字符,否则会报错NU1301 
6、禁用 HTTPS 服务器的 SSL/TLS 证书验证 

打开Visual Studio 2022 - 工具 - 选项:
https://i-blog.csdnimg.cn/direct/7f654460f4304c0a944a7ba5e6e3570a.png
找到 NuGet 包管理器 - 点击右侧配置文件第一行 - 点击下面打开: 
https://i-blog.csdnimg.cn/direct/b4623285e6014576b468ebdce228ed4f.png
添加属性 disableTLSCertificateValidation :
https://i-blog.csdnimg.cn/direct/bc96d6695ddd4536a633fce801118e08.png
<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.csdn.net/hefeng_aspnet/article/details/145822124 
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Visual Studio 2022 NUGET NU1301 无法加载源 基础连接已关闭:无法创建SSL