【Azure App Service】分享Python代码获取App Service Certificates (证书信息)

简介: 本文介绍如何使用Python脚本通过Azure SDK列出Azure中国区App Service的证书信息,重点获取证书的过期时间、指纹和名称。代码采用ClientSecretCredential认证方式,适配中国区AAD和ARM终结点,帮助及时发现即将过期的证书,避免服务中断。

问题描述

分享使用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)

执行的结果

 

代码解答

这段脚本使用 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 请求/响应流水,非常便于排查权限或终结点问题

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

 


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。关键点:

 

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

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

 

 

参考资料

[无]



 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
894 150
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1635 8
|
6天前
|
人工智能 前端开发 文件存储
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择
星哥带你玩转飞牛NAS,部署开源笔记TriliumNext!支持树状知识库、多端同步、AI摘要与代码高亮,数据自主可控,打造个人“第二大脑”。高效玩家的新选择,轻松搭建专属知识管理体系。
362 152
|
7天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
598 152
|
9天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
555 13
|
2天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话