【发布时间】:2021-07-06 13:59:20
【问题描述】:
我在 Windows 10 的 PowerShell 中使用 bash 中的 Azure CLI。我坐在公司代理后面。我的目标是自动化 Azure 资源的部署和设置。
一些 Azure CLI 命令运行良好:我可以运行 az login、更改默认订阅、列出位置、资源组、资源组中的资源,我什至可以运行 shell 脚本来部署 Key Vault 等资源。
但是,当我尝试在 Key Vault 中列出密钥或机密或创建密钥/机密时,我会得到以下信息:
请求发生错误,SSLError: HTTPSConnectionPool(host='xxxxxx.vault.azure.net', port=443): Max retries exceeded with url: /secrets?api-version=7.0(由SSLError(SSLError("错误的握手:错误([('SSL 例程', 'tls_process_server_certificate', '证书验证失败')],)",),))
我在这里提供的示例是针对 Key Vault 的,但我在使用其他类型的资源时遇到了同样的错误,所以我认为 Key Vault 不是问题。
将--debug 参数附加到命令时,我可以看到错误来自 Python 库之一:
urllib3.connectionpool : 在连接被 'SSLError(SSLError("bad handshake: Error( [('SSL 例程', 'tls_process_server_certificate', '证书验证失败')],)",),)': /secrets?api-version=7.0
我已经尝试了以下提供的建议:
Working with Azure CLI behind SSL intercepting proxy server,
包括export AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=anycontent 禁用证书检查(不推荐)和export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt 使Python 请求使用系统ca-certificates 包。
我也试过了:
export ADAL_PYTHON_SSL_NO_VERIFY=1
建议在以下帖子中:
[AzureStack] Handle SSL verification for certs not in Python root CA list #2267
但不幸的是,以上都没有对结果产生任何影响。
我正在使用 Azure CLI 版本 2.0.60 和 Python 3。
【问题讨论】:
-
您的环境中有问题。您可以使用 docker azure cli 映像并验证它是否正常工作。
标签: azure ssl azure-cli2