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

macOS下执行dotnet restore遇SSL远程证书无效问题求解决方法

可行解决步骤

第一步:确认问题根因

先执行临时禁用证书校验的还原命令,确认问题仅由证书不信任导致:

dotnet restore /p:DisableNuGetCertificateValidation=true

如果执行成功,说明确实是证书信任问题,继续后续操作。

第二步:修正钥匙串证书信任配置

之前导入钥匙串的证书需要手动开启全局信任:

  • 打开「钥匙串访问」App,找到你导入的ca.crt对应的证书条目,双击打开详情页
  • 展开「信任」下拉菜单,将「使用此证书时」选择为「始终信任」,「安全套接字层(SSL)」选项也明确设置为「始终信任」
  • 保存设置,输入系统密码确认修改

第三步:适配dotnet证书识别规则

Mac上dotnet部分版本会优先读取OpenSSL配置,可按需执行以下操作:

  • 如果你使用M系列ARM架构Mac:你之前操作的/usr/local路径是Intel芯片的brew默认路径,正确路径为/opt/homebrew/etc/openssl@3/certs,把ca.crt放到该目录后执行/opt/homebrew/opt/openssl@3/bin/c_rehash即可
  • 新增环境变量指定信任证书路径:打开你当前shell的配置文件(~/.zshrc或~/.bash_profile),添加以下内容:
    export SSL_CERT_FILE=替换为你的ca.crt文件的绝对路径
    
    保存后执行source ~/.zshrc(zsh环境)或source ~/.bash_profile(bash环境)使配置生效

第四步:同步证书到dotnet信任存储

执行dotnet自带工具同步系统信任证书:

dotnet dev-certs https --clean
dotnet dev-certs https --trust

执行完成后重启终端,再执行dotnet restore测试即可。

备用方案

如果以上操作均不生效,可直接在项目nuget.config中添加自定义CA信任规则,在<configuration>节点下新增以下内容:

<config>
  <add key="trustedSigners" value="true" />
</config>
<trustedSigners>
  <certificate name="CompanyCA" fingerprint="替换为你的CA证书的SHA256指纹" fingerprintAlgorithm="SHA256" />
</trustedSigners>

CA证书的SHA256指纹可通过以下命令获取,输出结果去掉冒号后填入即可:

openssl x509 -in ca.crt -noout -fingerprint -sha256

内容的提问来源于stack exchange,提问作者Ronaldo Lanhellas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:15:04