0

我正在尝试为托管在 Linux 虚拟机中的网站添加 SSL 证书。我成功添加了证书:

$certURL=(Get-AzureKeyVaultSecret -VaultName $keyVaultName -Name $key).id
$vm=Get-AzureRmVM -ResourceGroupName $resourceGroup -Name $vmName
$vaultId=(Get-AzureRmKeyVault -ResourceGroupName $resourceGroup -VaultName $keyVaultName).ResourceId
$vm = Add-AzureRmVMSecret -VM $vm -SourceVaultId $vaultId -CertificateUrl $certURL

Update-AzureRmVM -ResourceGroupName $resourceGroup -VM $vm

然后,我检查了证书是否添加成功:

az vm secret list --name $vmName --resource-group $resourceGroup
[
  {
    "sourceVault": {
      "id": "/subscriptions/...."
    },
    "vaultCertificates": [
      {
        "certificateStore": null,
        "certificateUrl": "https://name.vault.azure.net:443/secrets/ssl/123456ABCDFG (example)"
      }
    ]
  }
]

但是,当我签入 /var/lib/waagent/ 时,我找不到证书123456ABCDFG。我不知道它在哪里?

4

1 回答 1

1

我刚刚按照教程:使用存储在 Key Vault 中的 SSL 证书保护 Azure 中 Linux 虚拟机上的 Web 服务器。创建 VM 时,证书和密钥存储在受保护的/var/lib/waagent/目录中。

实际上,SSL 证书由 中的版本 ID 引用certificateUrl,123456ABCDFG 是您的密钥保管库中证书的当前版本。

检查版本 在此处输入图像描述

检查证书指纹,证书确实在那里。 在此处输入图像描述

此外,我使用 az 模块验证了您的 Powershell 命令,它也适用于我。

$certURL=(Get-azKeyVaultSecret -VaultName $keyVaultName -Name $key).id
$vm=Get-azVM -ResourceGroupName $resourceGroup -Name $vmName
$vaultId=(Get-azKeyVault -ResourceGroupName $resourceGroup -VaultName $keyVaultName).ResourceId
$vm = Add-azVMSecret -VM $vm -SourceVaultId $vaultId -CertificateUrl $certURL

Update-azVM -ResourceGroupName $resourceGroup -VM $vm

在此处输入图像描述

编辑

如果要使用 Az 模块运行为 AzureRM 模块开发的脚本,请使用Enable/Disable-AzureRmAliascmdlet 将别名从 AzureRM cmdlet 添加或删除到 Az cmdlet。请参阅此处的更多详细信息。AzureRm 模块将停用,建议使用新的 Az 模块。

我测试您的旧 PowerShell 命令如下: 在此处输入图像描述

于 2020-03-23T07:07:45.333 回答