从Azure密钥保管库向现有VM linux vm添加SSL证书

时间:2018-01-27 17:34:19

标签: azure azure-virtual-machine azure-keyvault

如何从Azure Key保管库向现有azure Linux VM添加SSL Cert。对于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

的链接

2 个答案:

答案 0 :(得分:2)

您可以使用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自定义脚本来使用它。

注意:您应该使用"$vm_secret",我在我的实验室进行测试,只有$vm_secret对我不起作用。

答案 1 :(得分:0)

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

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

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

Azure CLI

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