如何获取 Azure 应用程序网关 HTTPS 侦听器的证书

How to get a certificate for Azure Application Gateway HTTPS listener

我正在尝试使用应用程序网关设置端到端 SSL 连接以与 AppService 实例通信。 AppService 实例有一个带 SSL 的自定义域。

现在我想保护从客户端到应用程序网关的连接。为网关添加 HTTPS 侦听器时,系统要求我上传 .pfx 证书。我已设法使用自签名证书设置整个过程,如 this guide and here 中所述,但是我找不到有关如何生成 pfx 证书以分配给生产中的侦听器的任何信息。

我的问题如下:

对于您的情况,由于您没有自定义域并且依赖于应用程序网关 public IP 地址的默认 DNS 名称 - 因此您将无法配置 SSL/TLS你的听众,因为你不拥有 cloudapp.net 域,因此不会有 pfx。请注意,它必须是由众所周知的 CA 签署的证书,否则您的客户端应用程序最终会收到与证书信任相关的错误(除非他们在其末端安装了根 CA)。

为了更好地控制传入路由,建议生产环境获取您的域,然后为您的域(通配符或裸域)购买 SSL 证书,然后您可以将 .pfx 文件上传到应用程序网关听众。在这种情况下,您可以从 Azure 或任何其他供应商处购买证书。

The gateway can't be assigned a domain, and all I have is the public IP. How should this certificate be obtained in a production environment for it to work on that IP address?

SSL 证书不是特定于 IP 的。对于您的情况,对于端到端 SSL,您需要:

  1. 在您的自定义域中创建指向 WAF IP 的 DNS 记录
  2. 从商业 CA 获取证书
  3. 使用证书和 FQDN(主机名,在 #1 创建)在 WAF 上创建“多站点”HTTPS 侦听器
  4. 将现有应用服务添加为后端池
  5. 添加 HTTP 设置
    • 后端协议 HTTPS
    • 覆盖主机名 - 是
    • 从后端目标中选择主机名
  6. 使用 HTTP 设置
  7. 创建到 link 监听器的请求路由规则

或者,您可以更新应用服务的现有 DNS 记录以指向 WAF IP 并使用现有证书设置侦听器。

Can I obtain it on Azure, or using a third-party service (if yes, any suggestion)? You can use Azure Key Vault to obtain certificates from DigiCert or GlobalSign.