Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python从Azure KeyVault下载.pfx证书_Python_Azure_X509certificate_Azure Keyvault_Azure Sdk Python - Fatal编程技术网

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

使用Python从Azure KeyVault下载.pfx证书,python,azure,x509certificate,azure-keyvault,azure-sdk-python,Python,Azure,X509certificate,Azure Keyvault,Azure Sdk Python,我已将有效的.pfx证书导入Azure中的密钥库。当我尝试用Python使用SecretClient对象下载它时,我得到一个没有“begincertificate”或“END CERTIFICATE”页脚的值。我的理解是,这个值应该包含公共证书和私钥,但我似乎无法将这个字符串值转换为任何我可以使用或读取openssl的内容 我可以使用az keyvault secret download下载证书,然后使用openssl正确读取 我曾尝试将字符串写入文件并手动添加标题等,但我觉得我缺少一些基本的东

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

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

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

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

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

转换为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成功地进行查询