Garuda Linux(Arch系)终端新建.NET项目报NU3028/NU3037证书错误求解决
Arch/Garuda 环境下 .NET NuGet 恢复报错修复方案
报错根因
NU3028、NU3037类报错的核心是.NET SDK未正确对接系统根证书信任库,拉取NuGet包时无法通过官方签名校验,和项目代码、网络连通性无关。
修复步骤
- 更新系统全局证书库
执行系统包管理器更新命令,同步最新的CA根证书列表:sudo pacman -Syu ca-certificates - 让.NET SDK识别系统证书路径
Garuda默认使用Zsh作为登录Shell,将系统证书目录的环境变量写入用户Shell配置:
编辑~/.zshrc,在文件末尾追加:export SSL_CERT_DIR=/etc/ssl/certs
执行以下命令让配置即时生效:source ~/.zshrc - 校准系统时间
签名有效期类报错常伴随本地系统时间不准的问题,打开网络时间同步校准时间:sudo timedatectl set-ntp true - 临时兜底方案
完成上述步骤后如果仍有签名校验类报错,可临时关闭NuGet包签名验证优先跑通开发流程:
执行restore时追加参数跳过证书校验:dotnet restore --no-certificate-check
也可在项目根目录新建nuget.config配置文件,固定关闭签名校验:<?xml version="1.0" encoding="utf-8"?> <configuration> <config> <add key="SignatureValidationMode" value="accept" /> </config> </configuration>注意:该配置仅适用于本地开发场景,生产环境需保持签名校验开启。
验证效果
重新执行以下命令确认修复:
- 进入项目目录执行
dotnet restore,确认无报错输出 - 执行
dotnet run,正常看到控制台应用的输出内容即表示修复完成
额外提醒:首次创建项目时注意模板名拼写,counsole为拼写错误,正确模板名为console
内容的提问来源于stack exchange,提问作者venkey venkey
相关产品推荐
相关产品推荐

