将 SSL 证书附加到 Terraform 中的 Azure 应用程序网关

2023-11-21

我尝试使用 Terraform 自动部署应用程序网关已经花了很长时间,但它只是失败并显示错误消息。我已确保所有协议设置为 HTTPS。不过,我怀疑 PFX 证书有问题。

是不是我没有提供身份验证证书导致失败?在网上尝试了很多方法来获得解决方案,但没有提到这一点。

地形代码:

# Create a resource group
resource "azurerm_resource_group" "rg" {
  name     = "my-rg-application-gateway-12345"
  location = "West US"
}

# Create a application gateway in the web_servers resource group
resource "azurerm_virtual_network" "vnet" {
  name                = "my-vnet-12345"
  resource_group_name = "${azurerm_resource_group.rg.name}"
  address_space       = ["10.254.0.0/16"]
  location            = "${azurerm_resource_group.rg.location}"
}

resource "azurerm_subnet" "sub1" {
  name                 = "my-subnet-1"
  resource_group_name  = "${azurerm_resource_group.rg.name}"
  virtual_network_name = "${azurerm_virtual_network.vnet.name}"
  address_prefix       = "10.254.0.0/24"
}

resource "azurerm_subnet" "sub2" {
  name                 = "my-subnet-2"
  resource_group_name  = "${azurerm_resource_group.rg.name}"
  virtual_network_name = "${azurerm_virtual_network.vnet.name}"
  address_prefix       = "10.254.2.0/24"
}

resource "azurerm_public_ip" "pip" {
  name                         = "my-pip-12345"
  location                     = "${azurerm_resource_group.rg.location}"
  resource_group_name          = "${azurerm_resource_group.rg.name}"
  public_ip_address_allocation = "dynamic"
}

# Create an application gateway
resource "azurerm_application_gateway" "network" {
  name                = "my-application-gateway-12345"
  resource_group_name = "${azurerm_resource_group.rg.name}"
  location            = "West US"

  sku {
    name           = "Standard_Small"
    tier           = "Standard"
    capacity       = 2
  }

  gateway_ip_configuration {
      name         = "my-gateway-ip-configuration"
      subnet_id    = "${azurerm_virtual_network.vnet.id}/subnets/${azurerm_subnet.sub1.name}"
  }

  ssl_certificate {
    name     = "certificate"
    data     = "${base64encode(file("mycert.pfx"))}"
    password = "XXXXXXX"
  }

  frontend_port {
      name         = "${azurerm_virtual_network.vnet.name}-feport"
      port         = 80
  }

  frontend_ip_configuration {
      name         = "${azurerm_virtual_network.vnet.name}-feip"
      public_ip_address_id = "${azurerm_public_ip.pip.id}"
  }

  backend_address_pool {
      name = "${azurerm_virtual_network.vnet.name}-beap"
  }

  backend_http_settings {
      name                  = "${azurerm_virtual_network.vnet.name}-be-htst"
      cookie_based_affinity = "Disabled"
      port                  = 443
      protocol              = "Https"
     request_timeout        = 1
  }

  http_listener {
        name                                  = "${azurerm_virtual_network.vnet.name}-httpslstn"
        frontend_ip_configuration_name        = "${azurerm_virtual_network.vnet.name}-feip"
        frontend_port_name                    = "${azurerm_virtual_network.vnet.name}-feport"
        protocol                              = "https"
  }

  request_routing_rule {
          name                       = "${azurerm_virtual_network.vnet.name}-rqrt"
          rule_type                  = "Basic"
          http_listener_name         = "${azurerm_virtual_network.vnet.name}-httpslstn"
          backend_address_pool_name  = "${azurerm_virtual_network.vnet.name}-beap"
          backend_http_settings_name = "${azurerm_virtual_network.vnet.name}-be-htst"
  }
}

Error:

Error: Error applying plan:

1 error(s) occurred:

* azurerm_application_gateway.network: 1 error(s) occurred:

* azurerm_application_gateway.network: Error Creating/Updating ApplicationGateway "my-application-gateway-12345" (Resource Group "my-rg-application-gateway-12345"): network.ApplicationGatewaysClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="ApplicationGatewayHttpsListenerMustReferenceSslCert" Message="Http Listener /subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/my-rg-application-gateway-12345/providers/Microsoft.Network/applicationGateways/my-application-gateway-12345/httpListeners/my-vnet-12345-httpslstn uses protocol Https. Ssl Certificate must be specified." Details=[]

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

正如中提到的azurerm_application_gateway 文档你需要添加ssl_certificate_name给你的http_listener使用时阻塞https.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 SSL 证书附加到 Terraform 中的 Azure 应用程序网关 的相关文章

  • 在azure中使用terraform为应用程序服务创建自动缩放规则时出错

    resource azurerm monitor autoscale setting test name AutoscaleSetting resource group name azurerm resource group main na
  • 本地开发的 Azure Functions 扩展包版本问题

    我有一个带有队列触发器的 Java 11 Azure 函数 该函数在部署到 Azure 时按预期工作 并正确从定义的服务总线主题中提取消息 但是 运行相同的功能locally除非我回滚版本 否则不起作用Azure Functions 绑定扩
  • 直接向订阅发送消息

    是否可以将消息直接发送到订阅队列 设想 消息失败 被丢弃到死信中 该消息已使用 defer 手动拾取 克隆 并且需要发送到它首先被发送到死信的队列 但不是主题 我可以直接向订阅者发送消息吗 我考虑过为每个订阅者创建一个单独的重试队列 处理服
  • Azure 上的“phpcomposer.phar install”出现“无法终止进程”错误

    我正在尝试将我的 Symfony 2 应用程序部署到 Microsoft Azure 网站云 为此 我按照本指南中的步骤操作http symfony com doc current cookbook deployment azure web
  • 如何在 Azure 中仅部署辅助角色/Web 角色

    如果您在 Azure 解决方案中拥有 Web 和辅助角色 那么所有等待发布更新包 上传到云存储 等待包部署的过程可能会让人筋疲力尽 浪费大量时间 如何仅上传 部署包含这两个角色的 Microsoft Azure 解决方案的辅助角色或 Web
  • 在 terraform 存储库中设置多个逻辑组织的子文件夹的正确方法是什么?

    目前我正在 azure 中开发一个基础设施 其中包括以下内容 资源组 应用网关 应用服务 etc 我所拥有的一切都在一张单曲里main tf我知道这是一个错误的文件 但我想从那里开始 我目前正在尝试将每个部分移到我的存储库中自己的子文件夹中
  • 如何从本地运行的docker容器访问Azure Keyvault?

    我有一个包含 ASP NET Core 应用程序的 docker 映像 该应用程序使用 Azure Key Vault 来访问连接字符串等内容 当我在本地运行图像时 出现以下错误 Unhandled Exception Microsoft
  • 如何将张量流模型部署到azure ml工作台

    我在用Azure ML Workbench执行二元分类 到目前为止 一切正常 我有很好的准确性 我想将模型部署为用于推理的 Web 服务 我真的不知道从哪里开始 azure 提供了这个doc https learn microsoft co
  • 使用 CLI 在 Azure 中上传文件

    我正在尝试练习以下任务 创建存储帐户 az 存储帐户创建 name heyatafroz25 resource group user fottsascvuzj 获取存储帐户密钥 az 存储帐户密钥列表 g user fottsascvuzj
  • Azure EventGrid 主题中的多种事件类型

    围绕 Azure EventGrid 主题和事件的最佳实践是什么 将不同的事件类型发布到同一 Azure EventGrid 主题是不是一个坏主意 例如多个不同的领域事件 我们什么时候需要不同的主题 整个应用程序的单个共享主题 每种聚合根类
  • Azure AD AcquireToken 不适用于应用程序密码

    我正在尝试使用 NET ADAL 库验证 Azure AD 中的用户密码 这对于没有 MFA 的常规用户帐户来说效果很好 但对于激活了 MFA 的用户执行此操作时遇到了问题 当使用用户的实际密码时 我得到了AADSTS50076 Appli
  • 使用 Adal 代表用户访问 Azure KeyVault

    以下是控制台应用程序和 ClientID RedirectUri 来自 azure Active Directory 中创建的本机应用程序 var authContext new AuthenticationContext string F
  • 我可以将更大的字体文本添加到 https://portal.azure.com 仪表板上的 Markdown 小部件吗?

    In https portal azure com https portal azure com我想制作一个带有大标签的仪表板 我们的想法是 我们可以在大电视上获取统计数据 这样我们就可以一目了然地看到我们的服务状态 大厂牌会成功的更容易消
  • 如何获取 Azure Active Directory 登录用户的密码策略

    我想使用 graph api 或 adal 获取 C 中登录用户的密码到期日期 有了这个问题 我知道如何使用 PowerShell 获取密码策略以及到期日期 但还不确定如何使用 C 在 PowerShell 中获取 Azure Active
  • Azure VM 上的 MongoDb 连接超时

    将我的 Azure Web 应用程序连接到 Azure VM 上托管的 MongoDb 时 我遇到一些超时问题 2015 12 19T15 57 47 330 0100 I NETWORK Socket recv errno 10060 A
  • 本地测试 Azure Active Directory 安全性

    我在 Azure 上部署了一个 Web 应用程序 并启用了 Azure Active Directory 安全性 快速设置 因此 当我尝试访问该应用程序时 我需要成为 AD 的一部分才能访问 我想向应用程序添加更多功能 例如显示当前登录的用
  • 从 Azure 应用服务连接到 MongoDB Atlas 集群

    我在 Azure 上有一个 Web 应用程序 它连接到 Atlas cloud mongodb com 上托管的 MongoDB 集群 我想使用 Atlas 这样我就不必关心 MongoDb 配置 问题是我的集群连接超时 我必须在我的 mo
  • cosmosdb 模拟器没有给出任何结果

    我不知道为什么在查询宇宙数据库时会发生这种情况 它不会显示任何文档 即使是 SELECT FROM c 但显示了 RU 但它与文档选项卡中的文档选项卡配合得很好 如果我使用任何过滤器 那么它也可以工作 但它不适用于 SQL 查询 我已经添加
  • ASP.NET Identity:使用角色授权属性在 Azure 上不起作用

    我刚刚在 Azure 上发布了带有 Identity 和 OWIN 授权的新 ASP NET MVC 网站 前端工作得很好 但后端有问题 我在管理控制器中使用 Authorize 属性来检查用户是否具有访问它所需的角色 如下所示 Autho
  • msal.js 访问令牌中的自定义声明

    我使用 msal js 保护了我的 Angular 7 应用程序 我创建了一个自定义策略 该策略返回 id token 和 access token 中的自定义声明类型 为了实现这一目标 我一直在遵循本教程 https learn micr

随机推荐

  • 使用 JavaScript Array.sort() 方法进行洗牌是否正确?

    我正在帮助某人解决他的 JavaScript 代码 我的目光被如下所示的部分吸引了 function randOrd return Math round Math random 0 5 coords sort randOrd alert c
  • 如何使用javascript从IE中的iframe中删除边框

    我正在尝试通过 javascript 将 iframe 插入浏览器 DOM 中 并希望删除 IE 的边框 但似乎无法删除 我已经尝试过这些但无济于事 iframeElement style borderStyle none and ifra
  • 用于索赔模式 xRM 的 Apache CXF 客户端(Microsoft Dynamics CRM 2011)?

    我正在尝试为 Microsoft Dynamics CRM 2011 xRM Web 服务 我理解为基于 WCF 4 创建 Apache CXF 2 7 5 客户端 其中 CRM 处于声明模式 以便 WSDL此 Web 服务指向 STS 在
  • “endl”和“\n”之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 C std endl 与 n 我想知道是否有重要的这两种打印换行符的方法之间的区别 cout lt lt endl approach1 cout lt lt n approach2 有什么实际区别吗
  • 正则表达式否定整个单词? [复制]

    这个问题在这里已经有答案了 String test1 This is my test string 我想匹配一个不包含 test 的字符串 我可以用 Pattern p Pattern compile test 它有效 但在大多数网站上 例
  • Windows 上的 Python 和 XAMPP:如何做?

    我已经在我的 Win7x64 Xampp 和 Python 2 7 上安装了 现在我正在尝试获得Python语言的 力量 我该怎么做 我尝试过 mod python 和 mod wsgi 但第一个对于我的 Python 版本不存在 当我在安
  • 错误 CS2012:无法打开 <可执行路径> 访问 <可执行路径被拒绝>

    我当时正在 Visual Studio 2015 中开发 WPF 应用程序 一切都很顺利 直到意外地生成了 CS2012 错误 通知我它无法访问 更新 Debug 目录中的可执行文件 我尝试了以下方法但没有成功 Restart 关闭VS并再
  • 创建表单并在后台线程上使用 Form.ShowDialog

    使用Winforms 如果我所在的线程不是 主 ui 线程 我可以安全地进行操作吗 创建一个表格 在该表单上调用 ShowDialog 看来我会遵守以下规则 Winforms 控件必须在创建它们的线程上进行修改 从我完成的一些阅读来看 Sh
  • OpenCV TypeError:轮廓不是 numpy 数组,也不是标量

    我正在尝试使用 OpenCV 从 Nike 图像中提取标签 这是一个教程代码 取自 http opencv code com tutorials ocr ing nikes new rsvp program 我已经修改了几行代码 并且该部分
  • 指南针精灵图像和比例

    在过去的 4 个小时里 我一直在尝试找到一种使用 Compass 和 sass 创建精灵图像的方法 该图像还可以自动缩放每个单独的图像以与背景大小属性一起使用 我发现没有任何效果 不敢相信有这么难 有人有一个可行的例子吗 编辑 这是我到目前
  • 在线游戏,或者比ajax更快的东西来发送/接收数据

    我会尽可能地缩短它 到目前为止我所做的 我的游戏将使用 JavaScript 运行setTimeout or setInterval 这不是闪光灯或任何特殊的东西 到目前为止 我所做的就像一个测试运行 这样你可以更好地理解 几乎是循环 Aj
  • 为什么使用 Func 而不是 Predicate

    这只是一个好奇的问题 我想知道是否有人有一个好的答案 在 NET Framework 类库中 我们有以下两个方法 public static IQueryable
  • 如何在 C# 中实现进度条?

    如何在 C 中实现数据库调用的进度条和后台工作程序 我确实有一些处理大量数据的方法 它们是相对较长的运行操作 因此我想实现一个进度条 让用户知道确实发生了一些事情 我想过使用进度条或状态条标签 但由于只有一个 UI 线程 即执行数据库处理方
  • 如何在 Java 15 及以后版本中继续使用 Javascript

    在我的 Java 应用程序中 一个重要的小功能是能够根据音频文件的元数据 例如专辑 艺术家 标题 重命名音频文件 并且使用指定掩码JavaScript 这使得重命名功能非常灵活和强大 我知道 Javascript 已被弃用 但现在看来它实际
  • 适用于德尔福 2006/德尔福 2007/德尔福 2009 的 FitNesse

    是否有适用于 Delphi 2006 2007 2009 的 FitNesse 版本 如果是的话我在哪里可以找到它 还有其他类似 FitNesse 的程序可以在 Delphi 2006 上运行吗 Fitnesse 支持 Delphi 请参阅
  • eclipse 产品调用导致 java.lang.RuntimeException: 未找到应用程序 id

    我刚刚导出了一个产品 如果我点击 启动 Eclipse 应用程序 按钮 该产品就可以正常工作 如果尝试执行导出的产品 我会在启动时收到以下异常 SESSION 2012 03 16 17 28 21 206 eclipse buildId
  • 无法在 Linux 中复制名称中包含“$”的文件

    在我的 Linux 目录中 有一个名为TopSample Config class 每当我尝试将此文件复制到另一个位置 目录时 它都不允许我这样做 我这样做 cp TopSample Config class home praveen co
  • Freeradius 和 PHP 身份验证脚本

    我正在尝试根据 PHP 脚本对 freeradius 用户进行身份验证 但没有成功 我已经尝试了几个小时来配置这个权利 而我在谷歌上找到的所有线程要么是死链接 要么是过时的 半径配置文件 prefix usr exec prefix usr
  • 使用 netcat 逐行发送文本文件

    我正在尝试使用以下命令逐行发送文件 nc host port lt textfile cat textfile nc host port 我尝试过tail and head 但结果相同 整个文件作为唯一的行发送 服务器正在使用特定的守护进程
  • 将 SSL 证书附加到 Terraform 中的 Azure 应用程序网关

    我尝试使用 Terraform 自动部署应用程序网关已经花了很长时间 但它只是失败并显示错误消息 我已确保所有协议设置为 HTTPS 不过 我怀疑 PFX 证书有问题 是不是我没有提供身份验证证书导致失败 在网上尝试了很多方法来获得解决方案