首页 > 解决方案 > 使用来自 Azure Keyvault 的证书作为 kubernetes 机密

问题描述

我的 Azure KeyVault 中有一个证书 (pfx) - 我将该证书用作机密(使用 Helm 通过 Azure DevOps 部署)。我遇到的问题是从 KeyVault 中错误地读取了证书(我使用变量组) - 结果是当我的应用程序启动时,我得到一个如下所示的异常:

error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure

但是,当我手动创建一个秘密(通过使用 powershell 将证书内容读取为 base64)时,一切正常。我做错了什么?

标签: kubernetesazure-devopsazure-keyvaultkubernetes-secrets

解决方案


目前,Azure Pipelines 变量组集成仅支持映射来自 Azure 密钥保管库的机密。不支持加密密钥和证书。见这里

作为解决方法,你可以在 azure devops 管道中使用Azure Key Vault 任务

使用此任务从 Azure Key Vault 实例下载身份验证密钥、存储帐户密钥、数据加密密钥、.PFX 文件和密码等机密。

如果从保管库中提取的值是证书(例如,PFX 文件),则任务变量将包含字符串格式的 PFX 内容。

- task: AzureKeyVault@1
  inputs:
    azureSubscription: 
    keyVaultName: 
    secretsFilter: '*'

在使用此任务之前。应确保在 Azure 服务连接中使用的服务主体至少对保管库具有 Get 和 List 权限。

本教程在管道中使用 Azure Key Vault 中的机密也可能会有所帮助。


推荐阅读