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

Azure Pipeline macOS运行器执行dotnet dev-certs任务时挂起

Azure Pipeline macOS代理生成HTTPS证书挂起的解决方案

问题原因

在macOS环境中,dotnet dev-certs https命令默认会尝试将生成的证书导入系统密钥链,这个操作需要用户交互式授权(弹出密码输入窗口)。但Azure Pipeline的macOS代理是无头运行环境,无法处理这种交互请求,导致进程无限等待直至超时。

解决方案

修改PowerShell任务脚本,添加--no-trust参数跳过证书导入系统密钥链的步骤:

- task: PowerShell@2
  displayName: 'Generate authserver.pfx'
  inputs:
    targetType: 'inline'
    script: |
      cd $(Build.SourcesDirectory)/src/projectname.HttpApi.Host
      dotnet dev-certs https -v --no-trust -ep authserver.pfx -p $(passPhrase)

关键说明

  • --no-trust参数:阻止命令将证书添加到系统密钥链,避免触发需要用户交互的授权流程,适配CI/CD无头环境。
  • 路径兼容:将Windows风格的反斜杠\改为斜杠/,更适配macOS环境(PowerShell在macOS中也支持斜杠路径)。
  • 密码变量:确保$(passPhrase)已在Azure Pipeline变量中正确配置,且符合密码复杂度要求。

验证逻辑

添加--no-trust后,命令仅生成PFX证书文件,不会触发系统密钥链的授权操作,因此可以在macOS代理中顺利执行,不会出现挂起超时问题。对于ABP.io项目的构建需求,该证书仅用于开发环境的签名或服务启动,无需系统级信任,此配置完全满足需求。

内容的提问来源于stack exchange,提问作者Marc-Andre R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:55:05