【发布时间】:2020-09-09 19:11:11
【问题描述】:
这是一个奇怪的问题。
我创建了一个自签名证书并从中创建了一个 PFX 文件。然后,我将 PFX 文件转换为 base64 编码的字符串,并将其作为机密存储在 Azure Key Vault 中。然后我使用带有以下代码的 ARM 模板创建了一个新的 Windows VM:
"osProfile": {
"secrets": [
{
"sourceVault": {
"id": "[parameters('vaultResourceId')]"
},
"vaultCertificates": [
{
"certificateUrl": "[parameters('headNodeCertPrivateUri')]",
"certificateStore": "My"
}
]
}
]
}
VM 已创建,当我查看 LocalMachine/My store 时,我可以看到证书和它的私钥一起放置得很漂亮。所以一切都很好。
每隔一段时间我尝试使用相同的密钥创建一个 VM,它会在没有私钥的情况下导入证书。部署期间没有错误消息。除了 VM 本身的名称之外,ARM 模板是相同的。证书是它应该在的地方,在 LocalMachine/My 中,它只是缺少它的私钥。
我可以使用其私钥手动下载证书。证书本身没有改变;只有一个版本的密钥,并且所有 ARM 模板中的 Uri 配置相同。
我上面描述的行为是可重现的。创建新的自签名证书,将其上传到 Azure Key Vault,使用 ARM 模板引用密钥创建的第一个 VM 具有私钥,因此创建的所有后续 VM 都没有。
这让我很头疼。知道为什么这第一次会起作用,但以后不会起作用吗?
【问题讨论】:
标签: azure azure-keyvault arm-template