azure - 如何使用 terraform 从 azure key Vault 导入 azure web 应用程序证书

标签 azure terraform-provider-azure

我在 azure keyvault 中有一个应用程序服务的证书,我想将 key Vault 证书导入到我在 terraform 中的 Web 应用程序,但不确定在下面的示例中在哪里引用 keyvault?

  resource "azurerm_app_service_certificate_binding" "example" {
  hostname_binding_id = azurerm_app_service_custom_hostname_binding.example.id
  certificate_id      = azurerm_app_service_managed_certificate.example.id
  ssl_state           = "SniEnabled"
}

最佳答案

要将现有的 Key Vault 证书与您的 Web 应用程序绑定(bind),需要使用@json 提到的 下面的 @json 我们需要首先使用数据调用 Key Vault 证书,然后与 webapp 绑定(bind) .

//First Read the External Key Vault
data "azurerm_key_vault" "production_keyvault" {
  name                = "testingkeyvault2022"
  resource_group_name = "KeyVaultWestEuropeBackend"
}

// Now Read the Certificate
data "azurerm_key_vault_secret" "prod_certificate" {
  name         = "testcert"
  key_vault_id = data.azurerm_key_vault.production_keyvault.id
}

// Now bind the webapp to the domain and look for certificate. 
resource "azurerm_app_service_custom_hostname_binding" "website_app_hostname_bind" { //Website App
  depends_on = [
    azurerm_app_service_certificate.cert,
  ]
  hostname            = var.websiteurlbind
  app_service_name    = data.azurerm_app_service.read_website_app.name
  resource_group_name = data.azurerm_resource_group.Terraform.name
  ssl_state           = "SniEnabled"
  thumbprint          = azurerm_app_service_certificate.cert.thumbprint
}


// Get Certificate from External KeyVault
resource "azurerm_app_service_certificate" "cert" {
  name                = "testingcert"
  resource_group_name = data.azurerm_resource_group.Terraform.name
  location            = data.azurerm_resource_group.Terraform.location
  pfx_blob            = data.azurerm_key_vault_secret.prod_certificate.value
}

注意:-由于我端的一些访问问题,我尚未进行测试,但它应该可以工作。

请找到这个 SO THREAD 了解更多信息。

如果问题仍然存在,请通过此重新打开 GitHub问题。

关于azure - 如何使用 terraform 从 azure key Vault 导入 azure web 应用程序证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73108585/

相关文章:

sql-server - 使用 Azure DevOps 连接到专用链接上的 Azure SQL

Azure:如何使用 Terraform 在 Azure 中设置多重身份验证策略?

azure - 创建 Neo4j vm Terraform Message="从 Marketplace 镜像创建虚拟机需要请求中的计划信息

azure - 创建 azure vpn 网关时不支持的参数

python - 如何将参数传递给 AutoMLConfig 中的 get_data 脚本

使用用户名和电子邮件进行 Azure AD B2C 身份验证

azure - Terraform 映射并将值传递给模块

azure - 使用 Terraform(或 ARM 模板)为 Webtest 创建 Azure 警报规则?

java - 当我收到超时错误时,如何将 Azure postgres 数据库连接到 pgadmin

azure - 仅在 Azure 数据工厂中解压缩 .csv 文件