我在 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/