排查 Azure 应用服务中的域和 TLS/SSL 证书问题

在 Azure 应用服务中为 Web 应用设置域或 TLS/SSL 证书时,可能会遇到以下常见问题。 本文还介绍了这些问题的可能原因和解决方案。

对于本文中的任何内容,都可以通过在 Microsoft Q & A 和 Stack Overflow 论坛上联系 Azure 专家来获取更多帮助。 或者,要提交 Azure 支持事件,请访问 Azure 支持站点,然后选择“获取支持”。

注意

建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

证书问题

无法向应用添加 TLS/SSL 证书绑定

症状

添加 TLS 绑定时收到以下错误消息:

“未能添加 SSL 绑定。 无法设置现有 VIP 的证书,因为另一个 VIP 已使用该证书。”

原因

如果对跨多个应用的同一 IP 地址使用多个基于 IP 的 TLS/SSL 绑定,则可能会出现此问题。 例如,应用 A 具有采用旧证书的基于 IP 的 TLS/SSL 绑定。 应用 B 对同一 IP 地址使用采用新证书的基于 IP 的 TLS/SSL 绑定。 使用新证书更新应用 TLS 绑定时,更新会失败并显示此错误,因为同一个 IP 地址已用于另一应用。

解决方案

若要解决此问题,请尝试使用以下方法之一:

  • 在应用中删除使用旧证书的基于 IP 的 TLS/SSL 绑定。

  • 新建使用新证书的基于 IP 的 TLS/SSL 绑定。

无法删除证书

症状

尝试删除证书时出现以下错误消息:

“无法删除证书,因为它当前正用于 TLS/SSL 绑定。 必须先删除 TLS 绑定,然后才能删除证书。”

原因

如果另一个应用使用了该证书,则可能会出现此问题。

解决方案

  1. 从应用中删除该证书的 TLS 绑定。

  2. 尝试删除证书。

  3. 如果仍无法删除证书,请清除 Internet 浏览器缓存,然后在新的浏览器窗口中重新打开 Azure 门户。 然后尝试删除证书。

自定义域问题

自定义域返回 404 错误

症状

使用自定义域名浏览到站点时,收到以下错误消息:

“错误 404 - 找不到 Web 应用”。

原因和解决方法

原因 1

配置的自定义域缺少“CNAME 记录”或“A 记录”。

原因 1 的解决方法

  • 如果添加了“A 记录”,请确保同时添加 TXT 记录。 有关详细信息,请参阅创建 DNS 记录

  • 如果不需要对应用使用根域,我们建议使用“CNAME 记录”,而不是“A 记录”。

  • 不要对同一个域同时使用“CNAME 记录”和“A 记录”。 此问题可能会导致冲突,并阻止域解析。

原因 2

Internet 浏览器可能仍在缓存域的旧 IP 地址。

原因 2 的解决方法

清除浏览器缓存。 对于 Windows 设备,可以运行命令 ipconfig /flushdns。 要检查域是否指向应用的 IP 地址,请使用 WhatsmyDNS.net

无法添加子域

症状

无法将新主机名添加到应用,因此无法分配子域。

解决方案

  • 通过咨询订阅管理员,确保你有权限向应用添加主机名。

  • 如果需要更多子域,我们建议将域托管服务更改为 Azure 域服务 (DNS)。 使用 Azure DNS 可将 500 个主机名添加到应用。 有关详细信息,请参阅添加子域

无法解析 DNS

症状

收到以下错误消息:

“找不到 DNS 记录。”

原因

此问题是由以下原因之一导致的:

  • 生存期 (TTL) 未过。 要确定 TTL 值,请检查域的 DNS 配置,并等待该期限过期。

  • DNS 配置不正确。

解决方案

  • 等待 48 小时,让此问题自行解决。

  • 如果可以更改 DNS 配置中的 TTL 设置,请尝试将该值更改为 5 分钟,这样可能会解决此问题。

  • 要验证域是否指向应用的 IP 地址,请使用 WhatsmyDNS.net。 如果域没有指向 IP 地址,则将“A 记录”配置为应用的正确 IP 地址。

需要还原已删除的域

症状

域不再显示在 Azure 门户中。

原因

订阅所有者可能意外删除了该域。

解决方案

如果域的删除时间不超过七天,则该域尚未启动删除过程。 在这种情况下,可以在 Azure 门户中的同一个订阅下再次购买同一个域。 (请务必在搜索框中键入确切的域名。)此域不会重复产生费用。 如果该域的删除时间超过七天,请求助 Azure 支持来还原该域。

域问题

为错误的域购买了 TLS/SSL 证书

症状

为错误的域购买了应用服务证书, 并且无法将该证书更新为使用正确的域。

解决方案

删除该证书,然后购买新证书。

如果使用错误域的当前证书处于“已颁发”状态,则该证书也会产生费用。 应用服务证书不可退款,但可以联系 Azure 支持以获取其他可能的解决方案。

域验证无法进行

症状

应用服务证书要求先经过域验证,然后该证书才可供使用。 选择“验证”时,验证过程失败。

解决方案

通过添加 TXT 记录来手动验证域:

  1. 转到托管域名的域名服务 (DNS) 提供商站点。

  2. 添加域的 TXT 记录,该记录使用 Azure 门户中显示的域令牌的值。

  3. 等待几分钟以运行 DNS 传播,然后选择“刷新”按钮以触发验证。

另一种做法是使用 HTML 网页方法来手动验证域。 此方法可让证书颁发机构确认为其颁发证书的域的域所有权。

  1. 创建一个名为 {domain verification token}.html 的 HTML 文件。 文件内容应包含域验证令牌的值。

  2. 将此文件上传到托管域的 Web 服务器的根目录。

  3. 选择“刷新”,检查证书状态。 验证可能需要几分钟才能完成。

例如,如果为 azure.com 购买了域验证令牌为 1234abcd 的标准证书,则对 https://azure.com/1234abcd.html 发出的 Web 请求应返回 1234abcd。

重要

购买证书后,只有 15 天时间来完成域验证操作。 15 天后,证书颁发机构会拒绝该证书,但无需为证书付费。 在此情况下,请删除该证书并重试。>

无法购买某个域

症状

不能在 Azure 门户中购买应用服务域。

原因和解决方法

此问题是由以下原因之一导致的:

  • Azure 订阅中没有信用卡,或信用卡无效。

    解决方案:将有效的信用卡添加到订阅。

  • Azure 订阅类型不支持购买应用服务域。

    解决方法:将 Azure 订阅升级到其他订阅类型,例如即用即付订阅。

  • 根据订阅类型,在购买应用服务域之前可能需要足够的付款历史记录。

    解决方案:使用另一个有付款历史记录的订阅来购买,或者等到当前订阅有付款历史记录后再购买。

  • 你不是订阅所有者,因此无权购买域。

    解决方案:向帐户分配“所有者”角色。 或者,联系订阅管理员以获得购买域的权限。

无法将主机名添加到应用

症状

在添加主机名的过程中无法验证域。

原因

此问题是由以下原因之一导致的:

  • 无权添加主机名。

    解决方案:让订阅管理员为你授予添加主机名的权限。

  • 无法验证域所有权。

    解决方案:验证是否正确设置了“CNAME 记录”或“A 记录”。 若要将自定义域映射到应用,请创建“CNAME 记录”或“A 记录”。 如果要使用根域,则必须使用“A 记录”和“TXT 记录”:

    记录类型 主机 指向
    A @ 应用的 IP 地址
    TXT @ <app-name>.chinacloudsites.cn
    CNAME www <app-name>.chinacloudsites.cn

常见问题

购买网站的自定义域后是否必须配置该域?

当从 Azure 门户购买域时,应用服务应用会自动配置为使用该自定义域。 你不需要执行任何额外的步骤。 有关详细信息,请在 Channel9 上观看 Azure 应用服务自助:添加自定义域名。

可以改用在 Azure 门户中购买的域来指向 Azure 虚拟机吗?

是的,可以将域指向虚拟机。 有关详细信息,请参阅使用 Azure DNS 为 Azure 服务提供自定义域设置

我的域是由 GoDaddy 还是 Azure DNS 托管?

应用服务域使用 GoDaddy 进行域注册,使用 Azure DNS 来托管域。

我启用了自动续订,但仍收到了有关域续订的电子邮件通知。 应采取何种操作?

如果你启用了自动续订,则无需执行任何操作。 通过电子邮件发送的续订通知只是通知你域即将到期,如果未启用自动续订,则必须手动续订。

在 Azure DNS 中托管域是否要付费?

最初的域购买费用仅适用于域注册。 除了注册成本,Azure DNS 还会根据使用量收费。 有关详细信息,请参阅 Azure DNS 定价

我的域是之前在 Azure 门户中购买的,现在想要从 GoDaddy 托管改为 Azure DNS 托管。 如何执行此操作?

不需要迁移到 Azure DNS 托管。 如果要迁移到 Azure DNS,Azure 门户中的域管理体验会提供有关迁移到 Azure DNS 所需步骤的信息。 如果是通过应用服务购买的域,则从 GoDaddy 托管迁移到 Azure DNS 是一个相对无缝的过程。

如果通过应用服务域购买域,是否可以在 GoDaddy 而不是 Azure DNS 中托管该域?

从 2017 年 7 月 24 日开始,Azure 在 Azure DNS 上托管从 Azure 门户购买的应用服务域。 如果你想要使用其他托管提供商,则必须转到其网站以获取域托管解决方案。

是否需要支付域的隐私保护费用?

通过 Azure 门户购买域时,可以选择免费添加隐私保护。 通过 Azure 应用服务购买域时包含此权益。

如果我不再想要使用我的域,是否可以获得退款?

购买域时,五天内不收费。 在此期间,可以决定是否保留该域。 在此期限内,如果你选择不保留该域,则无需付费。 但是,以 .uk 结尾的域例外。 如果购买此类域,会立即产生费用,并且无法退款。

是否可以在订阅中的另一个 Azure 应用服务应用中使用域?

是的,访问 Azure 门户中的“自定义域”和“证书”页面时,你可以看到购买的域。 可将应用配置为使用其中的任何域。

是否可将域从一个订阅转移到另一个订阅?

是的,可以使用 Move-AzResource PowerShell cmdlet 将域移动到另一个订阅或资源组。

如果我当前没有 Azure 应用服务应用,该如何管理自定义域?

即使没有应用服务 Web 应用,也可以管理域。 可以将域用于虚拟机、Azure 存储等 Azure 服务。 如果你计划将域用于应用服务 Web 应用,则必须包含一个不在免费应用服务计划中的 Web 应用,以便将域绑定到 Web 应用。

是否可将使用自定义域的 Web 应用移到另一个订阅,或者将其从应用服务环境 v1 移到 v2?

是的,可以在订阅之间移动 Web 应用。 请遵照如何在 Azure 中移动资源中的指导操作。 移动 Web 应用时会受到一些限制。 有关详细信息,请参阅移动应用服务资源时存在的限制

移动 Web 应用之后,自定义域设置中的域的主机名绑定应该保持不变。 配置主机名绑定不需要额外的步骤。

从密钥保管库下载应用服务证书时,会返回哪些文件格式?

在“密钥保管库”/“机密”下的“应用服务证书”中选择“下载为证书”时,证书文件格式将为 .pfx。 不会对该文件应用密码。

可使用哪种文件格式将证书上传到应用服务?

证书文件格式必须是 .pfx 文件,并对该文件应用密码。 证书还必须满足此处提到的证书要求。 如果已从第三方证书颁发机构获取证书,并且文件为 .PEM/.KEY 格式,则可使用 openSSL 等工具将文件转换为 .pfx 文件格式。 在转换过程中必须加入私钥,因为 .pfx 文件格式需要私钥。 此外,如果证书颁发机构在证书链中提供了多个证书,则必须按相同的顺序合并证书。 有关详细信息,请参阅此处

如何为应用服务证书生成证书签名请求 (CSR)?

对于应用服务证书,可通过 Azure 门户或使用 Powershell/CLI 命令进行购买。 不需要 CSR。 不过,Azure Key Vault 支持存储任何证书颁发机构 (CA) 颁发的数字证书。 它支持使用私钥/公钥对创建证书签名请求 (CSR)。 CSR 可以由任何 CA(内部企业 CA 或外部公共 CA)签名。 有关详细信息,请参阅此处