证书的 Terraform 应用程序网关数据无效

Terraform application gateway Data for certificate is invalid

我正在使用 Terraform 部署一个 Azure 应用程序网关。在资源设置中,我有这样的配置:

ssl_certificate {
    data     = filebase64(var.ssl_certificate_path)
    name     = "demo-app-gateway-certificate"
    password = var.ssl_certificate_password
  }

  trusted_root_certificate {
    data = filebase64(var.ssl_certificate_path)
    name = "demo-trusted-root-ca-certificate"
  }

证书path设置为变量:

variable "ssl_certificate_path" {
  default = "./certificate.pfx"
}

但是当我 运行 terraform apply 我得到以下错误:

Error: creating/updating Application Gateway: (Name "demo-app-gateway" / Resource Group "XXXX"): network.ApplicationGatewaysClient#CreateOrUpdate: Failure sending request: StatusCode=0 -- Original Error: Code="ApplicationGatewayTrustedRootCertificateInvalidData" Message="Data for certificate /subscriptions/XXXXX/resourceGroups/XXXX/providers/Microsoft.Network/applicationGateways/demo-app-gateway/trustedRootCertificates/demo-trusted-root-ca-certificate is invalid." Details=[]

我尝试使用 filebase64 和 base64,但我总是遇到同样的错误。

任何人都可以解释一下我在这里做错了什么吗?非常感谢。

如评论中所述,SSL 证书 应为 .pfx 格式,因为它需要私钥和 受信任的根证书 应该是 .cer 格式。

有关详细信息,您可以参阅此 Microsoft Document 中的管理证书部分。

所以作为一个解决方案,你必须使用如下:

  ssl_certificate {
    name = "app_listener"
    data     = filebase64("C:/powershellpfx.pfx")
    password = "Password!1234"
  }

  trusted_root_certificate {
    data = filebase64("C:/PowerShellCert.cer")
    name = "demo-trusted-root-ca-certificate"
  }

输出: