HTTPS-доступ к виртуальной машине Ubuntu Azure - PullRequest
0 голосов
/ 17 декабря 2018

У меня виртуальная машина Ubuntu, работающая на 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 Ответ

0 голосов
/ 17 декабря 2018

Насколько я знаю, мы можем выполнить следующие шаги для настройки SSL для сервера nginx.

  1. Добавить сертификат SSl

    $ secret = $ (az keyvaultсекретные версии списка --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
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...