将 SSL 证书添加到 Azure 密钥保管库中的现有 VM linux vm

Add SSL Cert to an existing VM linux vm from Azure key vault

如何从 Azure 密钥保管库将 SSL 证书添加到现有的 azure Linux VM。对于 windows 我们使用以下命令

$vaultId=(Get-AzureRmKeyVault -ResourceGroupName $resourceGroup -VaultName $keyVaultName).ResourceId
$vm = Add-AzureRmVMSecret -VM $vm -SourceVaultId $vaultId -CertificateStore "My" -CertificateUrl $certURL

linux vm 是否有与此类似的? linux Secure IIS web server with SSL certificates on a Windows virtual machine in Azure

是否有类似的 link

ssh-copy-id -i ~/.ssh/id_rsa.pub aht@myserver。但是,如果您拥有 VM 的权限但没有原始密钥,则需要使用 azure vm reset-access 来执行此操作。它实际上被记录为一个独立的能力: help: -M, --ssh-key-file public 密钥 PEM 文件或 SSH Public 密钥文件的路径,用于 SSH 身份验证(仅当 os-type 为 "Linux") 当然,它并没有说明为了将我提供的密钥添加到我当前定位的 运行 虚拟机,这里还应该发生什么。但是结果需要是,如果我指定一个已经存在的用户,并且那里已经有一个密钥,则需要将这个密钥添加到目录中。

您会注意到,在 Azure/azure-linux-extensions#295 中,https://github.com/Azure/azure-linux-extensions/issues/295 认为使用 azure vm set-extensions ,然后 reset-access 被破坏。

更新 Key Vault 以用于 VM 使用 az keyvault update 在现有密钥保管库上设置部署策略。以下更新了 myResourceGroup 资源组中名为 myKeyVault 的密钥保管库:

A​​zure CLI

复制 az keyvault update -n myKeyVault -g myResourceGroup --set properties.enabledForDeployment=true

您可以使用 Azure Cli 来执行此操作。使用以下命令。

secret=$(az keyvault secret list-versions \
          --vault-name $keyvault_name \
          --name mycert \
          --query "[?attributes.enabled].id" --output tsv)
vm_secret=$(az vm format-secret --secret "$secret")

az vm update -n shui -g shuikeyvault --set osProfile.secrets="$vm_secret"

然后证书存储在 /var/lib/waagent,您可以使用 Azure Custom Script 来使用它。

注意:你应该使用"$vm_secret",我在我的实验室测试过,只有$vm_secret不适合我。