You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下.NET Core 3.1项目NuGet包还原提示远程证书无效

解决步骤
  1. 升级.NET Core 3.1 SDK修复已知缺陷
    你当前使用的3.1.415版本SDK存在Linux环境下SSL证书校验的已知问题,先升级到3.1分支的最终补丁版本:
sudo apt install apt-transport-https
sudo apt update
sudo apt install dotnet-sdk-3.1

升级后执行dotnet --version确认版本号不低于3.1.426,再尝试执行dotnet restore。

  1. 切换HTTP处理程序规避证书读取异常
    .NET Core 3.1默认的SocketsHttpHandler存在系统根证书读取异常的问题,执行命令前临时设置环境变量切换到旧版处理程序测试:
export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0
dotnet restore

如果恢复正常,可将该环境变量写入~/.bashrc文件永久生效。

  1. 强制同步系统CA证书链
    即使已确认根证书存在,仍需手动同步到.NET默认读取的证书路径:
sudo cp /usr/share/ca-certificates/mozilla/DigiCert_Global_Root_CA.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

执行完成后重启终端再尝试恢复依赖。

  1. 额外排查点:如果你的网络环境使用了中间人代理,需将代理的根证书也导入到/usr/local/share/ca-certificates/目录再执行证书更新,浏览器导入的证书仅对浏览器本身生效,不会自动同步到系统全局证书存储。

  2. 临时验证方案:如果以上操作均无效,可临时关闭NuGet证书校验确认问题根因(仅用于测试,不建议长期使用),在项目目录下新建临时NuGet.Config文件写入以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  <packageSourceTrust>
    <add key="nuget.org" allowUntrustedRoot="true" />
  </packageSourceTrust>
</configuration>

再执行dotnet restore验证是否可以正常运行。


内容的提问来源于stack exchange,提问作者Iain Carlin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:45:05