我已经完成了步骤1到步骤6。我在尝试从密钥库将证书添加到VM时遇到了麻烦。我使用了链接中的步骤:https://docs.microsoft.com/en-us/azure/virtual-machines/windows/tutorial-secure-web-server
我在azure门户的云外壳上使用了以下脚本。
$certUrl = (Get-AzureKeyVaultSecret -VaultName "xxxKeyVault" -Name "xxxcert").Id;
$vm=Get-AzureRmVM -ResourceGroupName "xxx_Group" -Name "XXX"
$vaultId=(Get-AzureRmKeyVault -VaultName "xxxKeyVault").ResourceId
$certStore = "MyCert";
$vm = Add-AzureRmVMSecret -VM $vm -SourceVaultId $vaultId -CertificateStore $certStore -CertificateUrl $certURL
Update-AzureRmVM -ResourceGroupName "xxx_Group" -VM $vm>
但是进入最后一个脚本,我得到了错误
Update-AzureRmVM:列出vaultCertificates包含重复的(https://xxxkeyvault.vault.azure.net/secrets/xxxxxx/xxxxxx,mycert)实例,这是不允许的。 错误代码:InvalidParameter 错误消息:列表vaultCertificates包含重复的(https://xxxkeyvault.vault.azure.net/secrets/xxxxxx/xxxxxx,mycert)实例,这是不允许的。 ErrorTarget:vaultCertificates 状态码:400 ReasonPhrase:错误的请求 操作ID:51078b39-72a0-4a6f-be02-e0fff12dff8b 在第1行:char:1 + Update-AzureRmVM -ResourceGroupName“ xxxx_Group” -VM $ vm + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ + CategoryInfo:CloseError:(:) [Update-AzVM],ComputeCloudException + FullyQualifiedErrorId:Microsoft.Azure.Commands.Compute.UpdateAzureVMCommand
我想念什么吗? 我的Vm是窗户。
更新 我已验证,我在Vm上拥有的证书不止一个。请,我到底要删除哪一个?
"secrets": [
{
"sourceVault": {
"id": "/subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.KeyVault/vaults/xxxKeyVault"
},
"vaultCertificates": [
{
"certificateUrl": "https://xxxkeyvault.vault.azure.net/secrets/xxxx/xxxx",
"certificateStore": "My"
},
{
"certificateUrl": "https://xxxxkeyvault.vault.azure.net/secrets/xxxxx/xxxxx",
"certificateStore": "My"
},
{
"certificateUrl": "https://xxxxkeyvault.vault.azure.net/secrets/xxxxxx/xxxxxxx",
"certificateStore": "My"
},
{
"certificateUrl": "https://xxxxkeyvault.vault.azure.net/secrets/xxxxxxx/xxxxxxxx",
"certificateStore": "MyCert"
}
]
},
{
"sourceVault": {},
"vaultCertificates": {}
}
],
答案 0 :(得分:0)
将证书添加到Azure VM时,应首先确保VM的操作系统类型。遵循您在文档Secure a web server on a Windows virtual machine in Azure with SSL certificates stored in Key Vault中的描述:
这些SSL证书可以存储在Azure Key Vault中,并允许 安全地将证书部署到Windows虚拟机(VM) 在Azure中。
似乎只适用于Windows VM,我也做了测试。因此,如果要向Linux VM添加证书,可以查看Secure a web server on a Linux virtual machine in Azure with SSL certificates stored in Key Vault。
此外,错误还显示:
Update-AzureRmVM:列出vaultCertificates包含重复的实例 的(https://xxxkeyvault.vault.azure.net/secrets/xxxxxx/xxxxxx, mycert),这是不允许的。
我建议您最好检查一下VM是否已经具有相同的证书。在我这边,如果您两次添加相同的证书,而第二次将出现以下错误:
希望这会对您有所帮助。
答案 1 :(得分:0)
您需要做的是这样
Azure的问题-它不知道(或关心)您的vm是否确实具有您要安装的证书,它抱怨的是VM定义已经具有该证书,因此无法添加它。< / p>