Azure 使用Terraform部署具有自签名证书的应用程序网关

Azure 使用Terraform部署具有自签名证书的应用程序网关,azure,terraform-provider-azure,Azure,Terraform Provider Azure,我有一个Terraform部署,它在Azure中部署了一个应用程序网关,以控制承载应用程序的应用程序服务环境的流量。目前,部署创建了一个使用端口80/HTTP的侦听器,但现在我已经让所有内容都按我所希望的方式工作,我想修改部署,以便在应用网关上进行SSL终止。我已经创建了一个用于测试的自签名证书,并已将该证书加载到Azure密钥库中。我现在正试图找出如何修改部署以使用证书。我唯一能找到的就是需要将ssl\u certificate\u name属性添加到侦听器中,但我知道还有更多。如何告诉Ter

我有一个Terraform部署,它在Azure中部署了一个应用程序网关,以控制承载应用程序的应用程序服务环境的流量。目前,部署创建了一个使用端口80/HTTP的侦听器,但现在我已经让所有内容都按我所希望的方式工作,我想修改部署,以便在应用网关上进行SSL终止。我已经创建了一个用于测试的自签名证书,并已将该证书加载到Azure密钥库中。我现在正试图找出如何修改部署以使用证书。我唯一能找到的就是需要将
ssl\u certificate\u name
属性添加到侦听器中,但我知道还有更多。如何告诉Terraform证书的“位置”?

不幸的是,应用程序网关不支持直接从密钥库中存储的证书获取引用,您可以选择

因此,
http\u侦听器
块仅支持通过
ssl\u certificate\u name
引用证书,因此您可以从
ssl\u certificate
块中的
name
data
属性引用证书。在此块中,
数据
需要应使用的身份验证证书的内容。此外,还可以使用内置函数读取证书
base64encode
内容。例如,要读取文件:
${file(“path.txt”)}


您可以获得更多关于和的场景。

您可以在部署时从kv中提取值,不确定crappyform是否可以做到这一点,arm模板可以提供这些信息,这非常有用。除非我遗漏了什么,否则在
应用程序网关
的Terraform文档中没有关于
ssl\U证书
块的文档。我也注意到了这一点,但我发现人们总是使用该块。您可以在示例场景中阅读它。我认为这应该与应用程序网关中的
authentication\u certificate
块相同,但添加了额外的
password
参数。
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"
  }