我有一个Terraform部署,该部署在Azure中部署应用程序网关,以控制到托管应用程序的应用程序服务环境的流量。当前,部署会创建一个使用端口80 / HTTP的侦听器,但是现在我可以按照需要进行所有操作,因此我想修改部署以在App Gateway上执行SSL终止。我已创建用于测试目的的自签名证书,并将该证书加载到Azure Key Vault中。我现在试图弄清楚如何修改我的部署以使用证书。我唯一能找到的就是需要将ssl_certificate_name
属性添加到侦听器,但是我知道它还不止这些。如何告诉Terraform证书“在哪里”?
答案 0 :(得分:1)
不幸的是,应用程序网关不支持直接从存储在密钥库中的证书获取引用,您可以升级到support SSL certificates stored in Key Vault secrets for listeners and backend HTTP settings on Application Gateway。
在此document中,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"
}
您可以获得有关attaching SSL certificate to Azure application gateway in Terraform和Azure Application Gateway with end-to-end SSL的更多方案。