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.

  1. Добавить сертификат 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"

  2. Установить Nginx

    sudo apt-get update

    sudo apt-get установить nginx

  3. Настроить сертификат 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
    
Другие вопросы по тегам