从Key Vault向Azure虚拟机添加证书

时间:2018-12-26 21:54:43

标签: azure azure-keyvault

我正在使用此链接上的步骤-https://blogs.msdn.microsoft.com/appserviceteam/2017/10/26/configure-app-service-certificate-to-azure-virtual-machine/

为Azure虚拟机配置App Service证书

我已经完成了步骤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": {}
    }
  ],

2 个答案:

答案 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是否已经具有相同的证书。在我这边,如果您两次添加相同的证书,而第二次将出现以下错误:

enter image description here

希望这会对您有所帮助。

答案 1 :(得分:0)

您需要做的是这样

  1. 打开resources.azure.com
  2. 导航到您的虚拟机
  3. 单击“编辑”,从osProfile中删除证书,单击“补丁”
  4. 重新运行脚本

Azure的问题-它不知道(或关心)您的vm是否确实具有您要安装的证书,它抱怨的是VM定义已经具有该证书,因此无法添加它。< / p>

相关问题