【发布时间】:2018-12-17 01:24:58
【问题描述】:
我有一个在 Microsoft azure 上运行的 Ubuntu VM。 目前我可以使用 HTTP 访问它,但不能使用 HTTPS。 在网络接口,入站端口规则,443已经被允许了。
我已经在虚拟机中添加了一个证书,通过创建一个密钥库和一个证书,准备按照this documentation进行部署:
az keyvault update -n <keyvaultname> -g <resourcegroupname> --set properties.enabledForDeployment=true
然后在this answer 之后添加证书。
在 Azure CLI 中:
$secret=$(az keyvault secret list-versions \
--vault-name <keyvaultname> \
--name <certname> \
--query "[?attributes.enabled].id" --output tsv)
$vm_secret=$(az vm secret format --secret "$secret")
az vm update -n <vmname> -g <keyvaultname> --set osProfile.secrets="$vm_secret"
我收到以下错误:
Unable to build a model: Cannot deserialize as [VaultSecretGroup] an object of type <class 'str'>, DeserializationError: Cannot deserialize as [VaultSecretGroup] an object of type <class 'str'>
但是,当我在那之后az vm show -g <resourcegroupname> -n <vmname> 时,在osProfile 中,秘密已经包含了我添加的秘密
"secrets": [
{
"sourceVault": {
"id": "/subscriptions/<subsID>/resourceGroups/<resourcegroupName>/providers/Microsoft.KeyVault/vaults/sit-key-vault"
},
"vaultCertificates": [
{
"certificateStore": null,
"certificateUrl": "https://<keyvaultname>.vault.azure.net/secrets/<certname>/<certhash>"
}
]
}
],
使用 HTTPS 访问时,我失败了。我可以使用 HTTP 访问它,但 chrome 仍然在地址旁边显示“不安全”标记。
我错过了什么?
我也检查了answer from similar question,但在虚拟机控制面板页面的任何地方都找不到“启用直接服务器返回”。
【问题讨论】:
-
您可以在带有 bash 环境的 Azure Cloud Shell 中执行此操作。当
vm_secret是字符串类型时,它可以正常工作。