找不到 Azure APIM 的 Terraform 自签名证书

时间:2021-07-03 20:17:20

标签: base64 terraform

我有一些自签名证书,我想将它与 APIM managementdeveloperproxy 域一起使用,如下所示:

但我收到此错误:

<块引用>

创建/更新 API 管理服务“jananath-apim”(资源组“apim-appGw-RG”):apimanagement.ServiceClient#CreateOrUpdate:发送请求失败:StatusCode=400 -- 原始 错误:Code="InvalidParameters" Message="无效参数:与 DeveloperPortal 关联的证书无效。错误消息:找不到请求的对象。\r\n。"

这是我的 terraform 代码:​​

apim.tf

resource "azurerm_api_management" "example" {
  name                = "jananath-apim"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  publisher_name      = "Contoso"
  publisher_email     = "jbjayarathna@gmai.com"

  sku_name = "Developer_1"
  virtual_network_type = "Internal"
  
  virtual_network_configuration {
    subnet_id = azurerm_subnet.apimSubnet.id
  }

  hostname_configuration {

      management {
        host_name                    = var.managementHostname  
        certificate                  = base64encode("jananath-ssl.pfx")
        certificate_password         = var.managementCertPfxPassword       
      }

      developer_portal {
        host_name = var.portalHostname  
        certificate                  = base64encode("jananath-ssl.pfx")
        certificate_password         = var.portalCertPfxPassword    
      }

      proxy {
        host_name = var.gatewayHostname 
        certificate                  = base64encode("jananath-ssl.pfx")
        certificate_password         = var.gatewayCertPfxPassword       
      }
  }
}

并且 jananath-ssl.pfxapim.tf 位于同一路径

我做错了什么?有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

base64encode 只是将字符串覆盖到 base64。它不读取实际文件。要读取您必须使用的文件:

base64encode(file("jananath-ssl.pfx"))

filebase64

filebase64("jananath-ssl.pfx")