代码之家  ›  专栏  ›  技术社区  ›  phydeauxman

使用TerraForm自签名证书部署应用程序网关

  •  0
  • phydeauxman  · 技术社区  · 7 年前

    我有一个TerraForm部署,它在Azure中部署了一个应用程序网关,以控制到托管应用程序的应用程序服务环境的流量。目前,部署创建了一个使用端口80/HTTP的监听器,但是现在我可以随心所欲地工作了,我想修改部署以在应用网关上执行SSL终止。我已经创建了一个用于测试的自签名证书,并且已经将该证书加载到了Azure密钥库中。我现在正试图弄清楚如何修改部署以使用证书。我唯一能找到的就是需要添加 ssl_certificate_name 属性给监听者,但我知道还有更多的属性。我如何告诉TerraForm证书在哪里?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Nancy Xiong    7 年前

    不幸的是,应用程序网关不支持直接从存储在密钥库中的证书获取引用,您可以向上投票 support SSL certificates stored in Key Vault secrets for listeners and backend HTTP settings on Application Gateway .

    由此 document A http_listener 块仅支持通过引用证书 ssl_certificate_name ,以便您可以引用来自 name data 属性在 ssl_certificate 块。在这个街区里, 数据 要求使用身份验证证书的内容。此外,还可以使用内置函数 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"
      }
    

    你可以得到更多关于 attaching SSL certificate to Azure application gateway in Terraform Azure Application Gateway with end-to-end SSL .