使用Python从Azure KeyVault下载.pfx证书

2024-05-17 08:09:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我已将有效的.pfx证书导入Azure中的密钥库。当我尝试用Python使用SecretClient对象下载它时,我得到一个没有“begincertificate”或“END CERTIFICATE”页脚的值。我的理解是,这个值应该包含公共证书和私钥,但我似乎无法将这个字符串值转换为任何我可以使用或读取openssl的内容

我可以使用az keyvault secret download下载证书,然后使用openssl正确读取它

我曾尝试将字符串写入文件并手动添加标题等,但我觉得我缺少一些基本的东西。我在这里看到的示例:https://github.com/Azure/azure-sdk-for-js/issues/7647似乎显示了直接写入文件并使用openssl读取的值。这不适用于我,我得到以下错误:

error:0D07803A: asn1 encoding routines : ASN1_ITEM_EX_D2I : nested asn1 error

因此,最基本的问题是:如何将KeyVaultSecret.value转换为x509对象,或者如何将其写入文件,以使openssl能够成功读取它


Tags: 文件对象字符串密钥errorcertificateazureend
1条回答
网友
1楼 · 发布于 2024-05-17 08:09:00

转换为base64时出错。未来相关方的代码如下:

import base64
from azure.keyvault.secrets import SecretClient

secret = SecretClient(keyvaulturl,credentials)
secret_b64 = base64.b64decode(secret.value)
with open('test.pfx','wb') as fopen:
    fopen.write(secret_b64)

这可以通过openssl成功地进行查询

相关问题 更多 >