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

企业防火墙后使用VSCode中AZCLI遇SSL证书验证失败求助

问题描述

在企业防火墙环境下使用VSCode中的AZCLI时,收到以下SSL证书验证失败错误:

cli.azure.cli.core.azclierror: HTTPSConnectionPool(host='login.microsoftonline.com', port=443): Max retries exceeded with url: /organizations/v2.0/.well-known/openid-configuration (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:997)')))

az_command_data_logger:
HTTPSConnectionPool(host='login.microsoftonline.com', port=443): Max
retries exceeded with url:
/organizations/v2.0/.well-known/openid-configuration (Caused by
SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: self signed certificate in certificate
chain (_ssl.c:997)')))

Certificate verification failed. This typically happens when using
Azure CLI behind a proxy that intercepts traffic with a self-signed
certificate. Please add this certificate to the trusted CA bundle.

cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x0402A460>]

当前问题:

  • 无法确定需要提取哪个防火墙证书添加到信任包
  • 已将MMC中的部分根证书追加到C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem,但无效
  • 已设置环境变量AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1和ADAL_PYTHON_SSL_NO_VERIFY=1,问题依旧
  • 疑问:REQUEST_CA_BUNDLE环境变量是否能解决该问题
解决方案

1. 准确获取防火墙拦截的证书

你需要的是企业防火墙用于拦截HTTPS流量的自签名根CA证书,可通过两种方式获取:

  • 浏览器导出法:
    1. 打开浏览器访问login.microsoftonline.com
    2. 点击地址栏左侧锁形图标 → 「证书」→ 「证书路径」
    3. 找到最顶层的企业自签名根证书(通常是公司内部CA),点击「查看证书」
    4. 切换到「详细信息」标签 → 「复制到文件」,选择「Base64编码的X.509(.CER)」格式导出
    5. 打开导出的CER文件,复制从-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----的全部内容,追加到cacert.pem文件末尾
  • OpenSSL命令法:
    在终端执行以下命令,找到输出中标记为Self-signed的最后一个证书块,复制对应内容追加到cacert.pem:
    openssl s_client -connect login.microsoftonline.com:443 -showcerts
    

2. 用REQUEST_CA_BUNDLE指定信任证书

这个环境变量可以解决你的问题,它会让Azure CLI优先使用你指定的CA证书包,替代默认的certifi证书库:

  • 设置命令:
    setx REQUEST_CA_BUNDLE "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem"
    
    如果你单独保存了企业根证书,也可以直接指向该证书文件路径

3. 确保环境变量生效

  • 设置完成后,必须关闭并重新打开VSCode,让终端加载新的环境变量
  • 在VSCode终端中执行echo %REQUEST_CA_BUNDLE%,确认路径输出正确

4. 排查现有环境变量问题

  • AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1理论上可以跳过SSL验证,若未生效,大概率是VSCode未读取到新设置的环境变量,重启VSCode或终端即可
  • ADAL_PYTHON_SSL_NO_VERIFY=1针对旧版Azure AD认证库(ADAL),新版Azure CLI使用MSAL库,该变量对你的情况无效,可忽略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:48:11