如何为azure-cli命令行工具设置代理?

Cod*_*ber 6 azure

我是公司防火墙的后面,无法使用命令行界面连接,这可能无法从系统配置中获取代理信息,但我找不到设置正确选项的方法.

小智 9

在另一个答案中提到的环境变量是解决方案的一部分,因此您确实需要在之前运行这些命令来进行设置az login。请注意,(至少以我为例)两个URL均以http开头,而不是以https开头。

SET HTTP_PROXY http://my-proxy-details

SET HTTPS_PROXY http://my-proxy-details

或者,将它们永久设置:

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://my-proxy-details", "Machine")

[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://my-proxy-details", "Machine")

如果您满意,可以在这里停止阅读。如果没有,并且看到证书错误,则额外的步骤是找到Azure CLI的专用Python安装,并将根证书添加到其cacert.pem文件中。尽管Python本身使用Windows证书存储,但某些软件包(尤其是certifi)却没有。

您将需要PEM格式的代理的根证书-即base64文本,而不是二进制文件。它可能具有.cer扩展名。

在Azure CLI的程序文件夹中找到site-packages文件夹。对我来说,这是C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages。在其中搜索名为的文件cacert.pem。我找到了三个。复制证书的内容,并将其粘贴到每个文件的底部。保存它们,然后重试。


小智 2

您可以使用 HTTP_PROXY 或 HTTPS_PROXY 环境变量来设置代理。

  • 设置 AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1 以避免使用 SSL 拦截 HTTP 代理时出现 SSL 问题 (8认同)