教程:使用自定义域和托管证书保护 Azure 应用服务应用
应用 <app-name>.chinacloudsites.cn
附带的默认域名可能无法理想地展示品牌。 在本教程中,使用你拥有的 www
域(例如 www.contoso.com
)配置应用服务,并使用应用服务托管证书保护自定义域。
该 <app-name>.chinacloudsites.cn
名称已受所有应用服务应用的通配符证书保护,但自定义域需要使用单独的证书进行 TLS 保护。 最简单的方法是使用来自应用服务的托管证书。 它免费且易于使用,并提供在应用服务中保护自定义域的基本功能。 有关详细信息,请参阅在应用服务中添加 TLS 证书。
方案先决条件
- 创建应用服务应用。
- 请确保你可以编辑自定义域的 DNS 记录。 要编辑 DNS 记录,需要有权访问域提供商(例如 GoDaddy)的 DNS 注册表。 例如,若要添加
www.contoso.com
的 DNS 条目,必须要能配置contoso.com
根域的 DNS 设置。 你的自定义域必须在某个公共 DNS 区域中;专用 DNS 区域只在内部负载均衡器 (ILB) 应用服务环境 (ASE) 上受支持。
A. 纵向扩展应用
需要将应用扩展到“基本”层级。 “基本”层级满足自定义域和证书的最低定价层要求(“共享”和“基本”层)。
步骤 1:在 Azure 门户中:
- 在顶部的搜索栏中输入应用的名称。
- 选择类型为“应用服务”的命名资源。
步骤 2:在应用的管理页中:
- 在左侧导航栏中,选择“纵向扩展(应用服务计划)”。
- 选中“基本 B1”复选框。
- 选择“选择” 。 应用更新完成后,会看到通知 Toast。
有关应用扩展的详细信息,请参阅扩展 Azure 应用服务中的应用。
B. 配置自定义域
步骤 1:在应用的管理页中:
- 在左侧菜单中,选择“自定义域”。
- 选择“添加自定义域”。
步骤 2:在“添加自定义域”对话框中:
- 对于“域提供程序”,请选择“所有其他域服务”。
- 对于“TLS/SSL 证书”,请选择“应用服务托管证书”。
- 对于“域”,请根据你拥有的域指定所需的完全限定的域名。 例如,如果你拥有的域是
contoso.com
,则可以使用 www.contoso.com。 - 暂时不要选择“验证”。
对于应用服务中的每个自定义域,需要向域提供商提供两条 DNS 记录。 “域验证”部分显示必须通过域提供商添加的两条 DNS 记录。 选择相应的“复制”按钮,以帮助你完成下一步。
C. 创建 DNS 记录
请登录到域提供商的网站。
- 查找用于管理 DNS 记录、域名、DNS 或名称服务器管理的页面(确切页面因域提供商而异)。
- 选择“添加”或相应的小组件来创建 DNS 记录。
- 根据 Azure 门户中的“域验证”部分选择 DNS 记录类型(CNAME、A 或 TXT)。
- 根据 Azure 门户中“域验证”部分中的“主机”和“值”列配置 DNS 记录。
- 请务必为自定义域添加两个不同的记录。
- 对于某些提供商,在选择单独的“保存更改”链接之前,这些 DNS 记录不会生效。
屏幕截图显示完成操作后,
www
子域的 DNS 记录应该是什么样。
D. 验证并完成
步骤 1:返回 Azure 门户中的“添加自定义域”对话框,选择“验证”。
步骤2:如果两个域记录的“域验证”部分旁边都显示了绿色对勾标记,则表明你已正确配置它们。 选择添加。 如果显示任何红色 X,请修复域提供商网站的 DNS 记录设置中存在的错误。
步骤 3:你应该能看到该自定义域已添加到列表中。 你还应该看到标明无绑定的红色 X。 请等待几分钟,让应用服务为自定义域创建托管证书。 该过程完成后,红色 X 将变为标有“安全”的绿色复选标记。
E. 在浏览器中测试
浏览至你之前配置的 DNS 名称(例如 www.contoso.com
)。 地址栏现在应该会为你的应用 URL 显示安全锁图标,表示它受 TLS 保护。
如果在浏览到自定义域的 URL 时收到 HTTP 404(未找到)错误,则浏览器客户端可能缓存了自定义域的旧 IP 地址。 请清除缓存,然后再次尝试导航到 URL。 在 Windows 计算机上,使用 ipconfig /flushdns
清除缓存。
常见问题
如果还没有自定义域,该怎么办?
只要不删除应用,<app-name>.chinacloudsites.cn
名称就始终会分配给应用。 应用服务域由 Azure 管理,并与应用服务集成,因此可以更轻松地将其与应用一起管理。
此托管证书是否过期?
只要为应用服务应用中的自定义域配置了应用服务托管证书,该证书就不会过期。
如何使用已有证书来保护自定义域?
请参阅向应用添加专用证书和在 Azure 应用服务中使用 TLS/SSL 绑定保护自定义 DNS 名称。