Linux下.NET 3.1项目dotnet restore失败:SSL连接无法建立
解决Linux下.NET 3.1
dotnet restore SSL连接异常问题 针对你遇到的CredentialProvider.Microsoft插件SSL连接失败导致dotnet restore报错的问题,以下是几个可行的解决方法:
禁用CredentialProvider.Microsoft插件(无需私有源时)
该插件主要用于Azure Artifacts等私有NuGet源的凭证验证,若你不需要访问这类私有源,可直接禁用:export NUGET_CREDENTIALPROVIDER_DISABLE=true执行后重新运行
dotnet restore。如需永久生效,将上述环境变量添加到~/.bashrc或~/.zshrc文件中。强制NuGet使用TLS 1.2
.NET 3.1默认可能未强制启用TLS 1.2,部分NuGet源仅支持该版本协议,设置以下环境变量:export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0 export NUGET_FORCE_TLS1_2=true之后再次执行
dotnet restore。检查并清理NuGet源配置
查看当前NuGet源列表:nuget config -list若存在无法访问的私有源或配置错误的源,可移除:
nuget sources Remove -Name "目标源名称"确保保留的源均为可正常访问的HTTPS地址。
重装CredentialProvider.Microsoft插件(需私有源时)
若必须使用需要凭证验证的私有源,尝试卸载并重装插件:# 删除现有插件文件 rm -rf ~/.nuget/plugins/netcore/CredentialProvider.Microsoft # 重新安装 wget -O - https://aka.ms/installcredprovider.sh | bash安装完成后重新执行
dotnet restore。验证系统SSL证书信任状态
手动验证NuGet源的SSL证书有效性,以nuget.org为例:openssl s_client -connect nuget.org:443查看输出中是否包含
Verify return code: 0 (ok),若未出现,说明证书信任仍有问题。将对应根证书添加到系统信任库:- Debian/Ubuntu:将证书放入
/usr/local/share/ca-certificates/,执行update-ca-certificates - RHEL/CentOS:将证书放入
/etc/pki/ca-trust/source/anchors/,执行update-ca-trust
- Debian/Ubuntu:将证书放入
内容的提问来源于stack exchange,提问作者saqx1
相关产品推荐
相关产品推荐

