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