Развертывание шлюза приложений с самозаверяющим сертификатом с помощью Terraform

У меня есть развертывание Terraform, в котором развертывается шлюз приложений в Azure для управления трафиком в среду службы приложений, в которой размещено приложение. В настоящее время развертывание создает прослушиватель, который использует порт 80 / HTTP, но теперь, когда у меня все работает так, как я хочу, я хочу изменить развертывание, чтобы выполнить завершение SSL на шлюзе приложений. Я создал самозаверяющий сертификат для целей тестирования и загрузил его в хранилище ключей Azure. Сейчас я пытаюсь понять, как изменить свое развертывание для использования сертификата. Единственное, что я могу найти, - это необходимость добавить свойство ssl_certificate_name к слушателю, но я знаю, что это еще не все. Как мне сообщить Terraform, «где» сертификат?


person phydeauxman    schedule 20.01.2019    source источник
comment
вы можете вытащить значения из kv во время развертывания, не уверен, что crappyform может это сделать, шаблоны arm могут   -  person 4c74356b41    schedule 21.01.2019


Ответы (1)


К сожалению, шлюз приложений не может поддерживать получение ссылок непосредственно из сертификата, хранящегося в хранилище ключей, вы можете проголосовать за поддерживает SSL-сертификаты, хранящиеся в секретах Key Vault для прослушивателей и серверные настройки HTTP на шлюзе приложений.

Из этого документа http_listener блок поддерживает только ссылку сертификат через ssl_certificate_name, поэтому вы можете ссылаться на сертификат из атрибутов name и data в блоке ssl_certificate. В этом блоке data требует содержимого сертификата аутентификации, который следует использовать. Также вы можете использовать встроенную функцию file читать содержимое сертификата base64encode. Например, чтобы прочитать файл: ${file("path.txt")}.

ssl_certificate {
     name     = "default"
     data     = "${base64encode(file("mycert.pfx"))}"
     password = "XXXXXXX"
  }

а также

  http_listener {
    name                           = "https"
    frontend_ip_configuration_name = "default"
    frontend_port_name             = "https"
    protocol                       = "Https"
    ssl_certificate_name           = "default"
  }

Вы можете получить больше сценариев прикрепления сертификата SSL к шлюзу приложений Azure в Terraform и шлюз приложений Azure со сквозным SSL.

person Nancy Xiong    schedule 21.01.2019
comment
Спасибо за информацию, это было очень полезно. Если я чего-то не упускаю, в документации Terraform для Application Gateway нет документации для блока ssl_certificate. - person phydeauxman; 23.01.2019
comment
Я тоже это заметил, но обнаружил, что люди всегда используют этот блок. Вы можете прочитать это в примерах сценариев. Я думаю, это должна быть та же утилита с блоком authentication_certificate в шлюзе приложений, но с дополнительным параметром password. - person Nancy Xiong; 23.01.2019