HTTPS-доступ к виртуальной машине Ubuntu Azure
У меня Ubuntu VM работает на Microsoft Azure. В настоящее время я могу получить к нему доступ через HTTP, но не через HTTPS. В сетевом интерфейсе правило входящего порта 443 уже разрешено.
Я уже добавил сертификат в ВМ, создав хранилище ключей и сертификат, подготовив его к развертыванию, следуя этой документации:
az keyvault update -n <keyvaultname> -g <resourcegroupname> --set properties.enabledForDeployment=true
затем добавил сертификат после этого ответа.
В 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 все еще отображается отметка "Незащищенный".
Что я упустил?
Я также проверил ответ на аналогичный вопрос, но не смог найти "Включить прямой возврат сервера" нигде на странице панели управления виртуальной машиной.
1 ответ
Насколько я знаю, мы можем выполнить следующие шаги для настройки SSL для сервера nginx.
Добавить сертификат SSl
$secret=$(az keyvault secret list-version --vault-name "keyvault_name" --name "имя сертификата" --query "[?attribute.enabled].id" --output tsv)
$ vm_secret = $ (секретный формат az vm --secrets $ secret)
az vm update -n "Имя виртуальной машины" -g "Имя группы ресурсов" --set osProfile.secrets="$vm_secret"
Установить Nginx
sudo apt-get update
sudo apt-get установить nginx
Настроить сертификат SSL
#get cert name find /var/lib/waagent/ -name "*.prv" | cut -c -57 #paste cert mkdir /etc/nginx/ssl cp “your cert name” /etc/nginx/ssl/mycert.cer cp “your cert name” /etc/nginx/ssl/mycert.prv #change nginx configuration file sudo nano /etc/nginx/sites-available/default PS: add the next content in the file server { listen 443 ssl; ssl_certificate /etc/nginx/ssl/mycert.cert; ssl_certificate_key /etc/nginx/ssl/mycert.prv; } service nginx restart