【Azure Key Vault】下载Key Vault中保存证书的PFX文件报错问题分析

问题描述

使用Azure Key Vault服务来对证书进行管理和存储。

但是,却在下载PFX证书的时候,发生了错误。

错误信息:

File download error, Failed to dynamically fetch target download uri.

而它旁边的功能"下载CER证书",却能成功。

这种情况是什么原因呢?

问题解答

是的,最开始面对这个问题,非常的疑惑。如果没有读取/下载的权限,正常理解,操作的时候会提示权限不足的信息。而且,当前登录Azure的账号拥有操作证书(Certificate)的全部权限:

Get, List, Update, Create, Import, Delete, Recover, Backup, Restore, Manage Contacts, Manage Certificate Authorities, Get Certificate Authorities, List Certificate Authorities, Set Certificate Authorities, Delete Certificate Authorities

基于当前错误信息简单,无法帮助定位问题,有效的排查思路是:

  • 打开浏览器开发者模式,
  • 查看"下载PFX证书文件"时,浏览器的Network Trace中全部请求的状态,观察请求中是否有错误,
  • 如果有错误,查看请求响应内容,进一步根据内容分析问题原因。

结果非常有效,观察到在执行下载操作的时候,Get请求报错403 Forbidden。非常明显,这就是错误原因。

详细的请求状态和错误消息:

Request URL : https://xxxx.vault.azure.cn/secrets/mytest-com-cn/b7605b\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*cf41d?api-version=7.5\&_=1773663092181

Request Method : GET

Status Code : 403 Forbidden

Response:

{ "error": {

"code": "Forbidden",

"message": "The user, group or application 'appid=***-***-***-***-***;oid=***-***-***-***-***;numgroups=13;iss=https://sts.chinacloudapi.cn/\*\*\*-\*\*\*-\*\*\*-\*\*\*-\*\*\*/' does not have secrets get permission on key vault '******;location=chinanorth3'. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125287",

"innererror": { "code": "ForbiddenByPolicy"}

} }

根据这个错误提示,我们当前操作的用户虽然有全部的证书(Certificate)的权限,但是没有机密(Secrets)的GET权限。的确,我们只是操作证书,何必需要机密的权限了!困惑中 ~~~

但为了解决下载PFX证书问题,我们还是根据提示为当前操作用户添加了机密的GET权限。

添加权限之后,再次下载证书,问题解决了。

查看报错和解决问题的步骤截图:

【完】

请教AI大模型,它帮忙解释了这个现象:

Q1:为什么从 Azure Key Vault 下载 PFX 证书需要 Get Secrets 权限?

A: 因为在 Azure Key Vault 中,包含私钥的完整 PFX 证书是以 Secret 的形式存储的 。当您下载 PFX 文件时,Key Vault 实际上是在读取对应的 Secret,而不是 Certificate 对象,因此需要 secrets/get 权限。

Q2:Certificate 权限和 Secret 权限有什么区别?

A: Certificate 权限 :用于管理和读取证书的元数据和公钥信息 Secret 权限:用于访问敏感数据,例如包含私钥的 PFX 内容

仅授予 Certificate 相关权限时,只能获取公钥,无法下载包含私钥的 PFX 文件。

Q3:为什么 Azure Key Vault 要这样设计?

A: 这是出于安全考虑的分层设计。公钥属于低敏感数据,而私钥和 PFX 属于高敏感资产,必须通过 Secret 权限进行严格控制,避免私钥被意外暴露。

参考资料:

Azure Key Vault certificate FAQ : https://learn.microsoft.com/en-us/azure/key-vault/certificates/faq


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

相关推荐
abcy0712133 小时前
flask hdfs 异步上传图文教程csdn
python·flask
垂钓的小鱼16 小时前
TRIZ理论是什么?萃智引擎如何将它变为工程师的AI创新助手
人工智能·microsoft
abcy0712139 小时前
flask celery hdfs 异步上传
python·hdfs·flask
叫我:松哥11 小时前
基于Python的共享单车租赁数据分析与预测系统,技术栈flask+boostrap+随机森林+XGBoost
人工智能·python·深度学习·算法·随机森林·数据分析·flask
垂钓的小鱼111 小时前
阿奇舒勒矛盾矩阵如何在萃智引擎中实现 AI 化——从 39×39 到一句话输入
microsoft
叫我:松哥14 小时前
基于机器学习和flask的体育健身风险智能分析系统,系统集成DeepSeek、聚类算法、分类算法等,准确率达90%
人工智能·python·神经网络·算法·机器学习·flask·聚类
weixin_3077791316 小时前
在 Azure 上构建数据库路由与异构整合层:原理、方案与最佳实践
数据库·人工智能·后端·云计算·azure
小黄人软件1 天前
Claude和Codex下载离线包 安装遇到问题:windows无法访问指定设备 路径 文件 应用无法打开也无法卸载,解决了
人工智能·microsoft·openai·codex
叫我:松哥1 天前
基于Flask框架的校园二手书籍交易平台,注重校园场景的特殊需求,通过学号认证保障用户真实性
后端·python·sqlite·flask·bootstrap
2601_961875241 天前
法考资料全套2026|客观题|主观题|资料已整理
阿里云·云计算·腾讯云·azure·七牛云存储·csdn开发云·火山引擎