从密钥库向azure VM添加证书

从密钥库向azure VM添加证书,azure,azure-keyvault,Azure,Azure Keyvault,我正在使用此链接上的步骤将应用程序服务证书配置到Azure虚拟机- 我已经完成了步骤1到步骤6。我在尝试从密钥库向VM添加证书时遇到了问题。我使用了链接中的步骤: 我在azure portal上的云shell上使用了以下脚本 $certUrl = (Get-AzureKeyVaultSecret -VaultName "xxxKeyVault" -Name "xxxcert").Id; $vm=Get-AzureRmVM -ResourceGroupName "xxx_Group" -Name

我正在使用此链接上的步骤将应用程序服务证书配置到Azure虚拟机-

我已经完成了步骤1到步骤6。我在尝试从密钥库向VM添加证书时遇到了问题。我使用了链接中的步骤:

我在azure portal上的云shell上使用了以下脚本

$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>
但是进入最后一个脚本,我得到了错误

更新AzureRmVM:List Vault证书包含重复的(,mycert)实例,这是不允许的。 错误代码:InvalidParameter ErrorMessage:List Vault证书包含重复的(,mycert)实例,这是不允许的。 ErrorTarget:Vault证书 状态代码:400 错误的要求 操作ID:51078b39-72a0-4a6f-be02-E0FFF12DF8B 第1行字符:1 +更新AzureRmVM-ResourceGroupName“xxxx_组”-VM$VM + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:CloseError:(:)[Update AzVM],ComputeCloudException +FullyQualifiedErrorId:Microsoft.Azure.Commands.Compute.UpdateAzureVMCommand

我错过什么了吗? 我的虚拟机有一个窗口

更新 我已经验证了我在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": {}
    }
  ],

当您向Azure VM添加证书时,您应该首先确定VM的操作系统类型。根据您遵循的文档中的描述:

这些SSL证书可以存储在Azure密钥库中,并允许 将证书安全部署到Windows虚拟机(VM) 在蔚蓝中

这似乎只是工作的Windows虚拟机和我也做了测试。因此,如果您想向LinuxVM添加证书,可以查看

此外,错误还显示:

更新AzureRmVM:列表证书包含重复实例 的, 这是不允许的

我建议您最好检查一下VM是否已经拥有相同的证书。在我这方面,如果您两次添加同一证书,第二次会出现如下错误:


希望这对您有所帮助。

您需要做的是:

  • openresources.azure.com
  • 导航到您的虚拟机
  • 单击编辑,从osProfile中删除证书,单击修补程序
  • 重新运行脚本

  • Azure的问题是——它不知道(或关心)你的虚拟机是否真的有你要安装的证书,它抱怨的是虚拟机定义已经有了该证书,所以它无法添加它。

    很抱歉,我忘了添加它是widows虚拟机。也许我会检查虚拟机是否已经有了证书。谢谢你的帮助。我刚刚检查了虚拟机上是否已经存在证书,但它不在那里。这是真的吗?我做了测试,两次添加相同的证书时出现了相同的错误。查看答案,我已经更新了。您可以使用获取虚拟机信息并进行检查。您可以在osProfile中看到它。我现在可以看到证书了。我有超过4个。谢谢。今天晚些时候我将再次运行脚本。我已经看到了其中的4个以上。我是将它们全部移除还是只保留其中一个。其次,如果是全部,我是否将其从“机密”节点中删除?谢谢你的帮助。什么是秘密节点?你可以删除你试图再次添加的节点,或者删除所有节点,这并不重要,它不会从虚拟机中删除它们。我是新来的,没有足够的声誉投票支持你。谢谢。你真的帮了大忙。这可能意味着你需要接受这个答案,而不是另一个;)