在 /var/lib/waagent/ 中找不到 Linux Azure VM 的 SSL 证书

SSL Certificate is not found in /var/lib/waagent/ for Linux Azure VM

我正在尝试为我在 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。我不知道它在哪里?

我刚刚关注了Tutorial: Secure a web server on a Linux virtual machine in Azure with SSL certificates stored in Key Vault。创建 VM 时,证书和密钥存储在受保护的 /var/lib/waagent/ 目录中。

事实上,SSL 证书由 certificateUrl 中的版本 ID 引用,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-AzureRmAlias cmdlet 添加或删除 AzureRM cmdlet 到 Az cmdlet 的别名。参考更多细节here。 AzureRm模块即将退役,推荐使用新的Az模块

我测试你的旧 PowerShell 命令如下: