万宁市网站建设_网站建设公司_后端开发_seo优化
2025/12/18 19:42:50 网站建设 项目流程

问题描述

分享使用Python 代码列举出全部 Azure App Service 的证书信息。

最关键的信息是证书的过期时间,如果即将过期,可以及时发现并更新证书,避免因证书而导致站点不可访问。

 

代码示例:

from azure.identity import ClientSecretCredential
from azure.identity import AzureAuthorityHosts
from azure.mgmt.web import WebSiteManagementClient# import logging# logging.basicConfig(level=logging.DEBUG)
# logging.getLogger("azure.core.pipeline.policies.http_logging_policy").setLevel(logging.DEBUG)

client_id=" "
client_secret=" "
tenant_id=""# sdk ClientSecretCredential 方式认证
credentials = ClientSecretCredential(client_id=client_id,client_secret=client_secret,tenant_id=tenant_id,authority=AzureAuthorityHosts.AZURE_CHINA)
webapp_client = WebSiteManagementClient(credentials,subscription_id=" ",base_url="https://management.chinacloudapi.cn", credential_scopes=["https://management.chinacloudapi.cn/.default"])certificates = webapp_client.certificates.list_by_resource_group(resource_group_name="<your resource group name>")print("Certificates in resource group :")for i in certificates:# print(i.as_dict())print( i.thumbprint, i.expiration_date,i.name)

执行的结果

image

 

代码解答

这段脚本使用 Azure SDK for Python(azure-identity 与 azure-mgmt-web)在 Azure 中国(21V) 环境下,通过客户端机密方式获取管理访问令牌,然后调用 WebSiteManagementClient 列出某个资源组中的 App Service 证书(certificates.list_by_resource_group),并打印每个证书的 指纹(thumbprint)、到期时间(expiration_date) 和 资源名称(name)。

代码采用了中国区Azure 管理终结点与 Authority Host,这是在中国云环境下正确的做法。

 

逐行解答

# import logging
# logging.basicConfig(level=logging.DEBUG)
# logging.getLogger("azure.core.pipeline.policies.http_logging_policy").setLevel(logging.DEBUG) 

这是Python代码的日志配置,如果打开,可观察 SDK 发送的 HTTP 请求/响应流水,非常便于排查权限或终结点问题

开启日志后的输出效果图:

image

 

credentials = ClientSecretCredential(client_id=client_id,client_secret=client_secret,tenant_id=tenant_id,authority=AzureAuthorityHosts.AZURE_CHINA
)

通过 ClientSecretCredential 获取令牌,authority=AzureAuthorityHosts.AZURE_CHINA 指定中国区Azure的 AAD 发行者(login.partner.microsoftonline.cn)。没有这个设置,中国区Azure环境下会因 authority 不匹配导致无法获取令牌

 

webapp_client = WebSiteManagementClient(
  credentials,
  subscription_id="your subscription id",
  base_url="https://management.chinacloudapi.cn",
  credential_scopes=["https://management.chinacloudapi.cn/.default"]
)

初始化App Service 管理对象 webapp_client。关键点:

  • subscription_id:目标订阅。
  • base_url:Mooncake 的 **资源管理器(ARM)**终结点(非全球 management.azure.com)。
  • credential_scopes:令牌的 资源范围,在中国云应请求 https://management.chinacloudapi.cn/.default。这与公共云的 https://management.azure.com/.default 不同。

 

certificates = webapp_client.certificates.list_by_resource_group(resource_group_name="<your resource group>")

调用证书管理 API,列出资源组 (需要用真实的值替换 <your resource group>)下的所有 App Service Certificates(包括上传到 App Service 的私有证书)。

 

 

参考资料

[无]

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询