证书和应用服务环境

注意

本文介绍与独立 v2 应用服务计划一起使用的应用服务环境 v3

应用服务环境是在 Azure 虚拟网络中运行的 Azure 应用服务的部署。 可以使用能够通过 Internet 访问的应用程序终结点或者虚拟网络中的应用程序终结点来部署 ASE。 如果使用可通过 Internet 访问的终结点来部署应用服务环境,则该部署称为外部应用服务环境。 如果使用虚拟网络中的终结点来部署应用服务环境,则该部署称为 ILB 应用服务环境。 可以在创建和使用 ILB 应用服务环境文档中详细了解 ILB 应用服务环境。

应用程序证书

托管在应用服务环境中的应用程序支持以下以应用为中心的证书功能,这些功能在多租户应用服务中也可用。 有关上传和管理这些证书的要求和说明,请参阅在 Azure 应用服务中添加 TLS/SSL 证书

在将证书添加到应用服务应用或函数应用后,即可使用它来保护自定义域名在应用程序代码中使用它

限制

托管在应用服务环境中的应用不支持应用服务托管证书

TLS 设置

可在应用级别配置 TLS 设置

专用客户端证书

一个常见用例是将应用配置为客户端-服务器模型中的客户端。 如果使用专用 CA 证书保护服务器,则需要将客户端证书(.cer 文件)上传到应用。 以下说明介绍如何将证书加载到运行应用的辅助角色的信任存储中。 只需上传证书一次即可将它用于同一应用服务计划中的应用。

注意

只有 Windows 代码应用中的自定义代码才支持专用客户端证书。 应用外部不支持专用客户端证书。 这在某些场景下会限制使用,例如使用专用证书从注册表拉取应用容器映像,以及使用专用证书通过前端服务器进行 TLS 验证。

按照以下步骤将证书(.cer 文件)上传到应用服务环境中的应用。 可以从证书导出 .cer 文件。 出于测试目的,末尾有一个 PowerShell 示例,用于生成临时自签名证书:

  1. 在 Azure 门户中转到需要该证书的应用

  2. 转到应用中的“证书”。 选择“公钥证书(.cer)”。 选择“添加证书”。 提供一个名称。 浏览并选择你的 .cer 文件。 选择“上传”。

  3. 复制指纹。

  4. 转到“配置”>“应用程序设置”。 创建应用设置 WEBSITE_LOAD_ROOT_CERTIFICATES,并使用指纹作为值。 如果有多个证书,可将其放到同一个设置中,并用逗号分隔(不要包含空格),例如

    84EC242A4EC7957817B8E48913E50953552DAFA6,6A5C65DC9247F762FE17BF8D4906E04FE6B31819

该证书将由与配置了该设置的应用在同一应用服务计划中的所有应用使用,但依赖于专用 CA 证书的所有应用都应配置“应用程序设置”以避免计时问题。

如果需要它可用于其他应用服务计划中的应用,则需要对该应用服务计划中的应用重复此应用设置操作。 若要检查是否设置了证书,请转到 Kudu 控制台,并在 PowerShell 调试控制台中发出以下命令:

dir Cert:\LocalMachine\Root

若要执行测试,可以创建自签名证书,并使用以下 PowerShell 命令生成 .cer 文件:

$certificate = New-SelfSignedCertificate -CertStoreLocation "Cert:\LocalMachine\My" -DnsName "*.internal-contoso.com","*.scm.internal-contoso.com"

$certThumbprint = "Cert:\LocalMachine\My\" + $certificate.Thumbprint
$fileName = "exportedcert.cer"
Export-Certificate -Cert $certThumbprint -FilePath $fileName -Type CERT

专用服务器证书

如果应用充当客户端-服务器模型中的服务器(位于反向代理后面或直接与专用客户端一起使用),并且你使用的是专用 CA 证书,则你需要将服务器证书(.pfx 文件)连同完整证书链一起上传到应用,然后将证书绑定到自定义域。 由于基础结构专用于应用服务环境,因此完整证书链将添加到服务器的信任存储中。 只需上传证书一次即可将它用于同一应用服务环境中的应用。

注意

如果证书是在 2023 年 10 月 1 日之前上传的, 则需要重新上传并重新绑定证书,才能将完整证书链添加到服务器。

遵循使用 TLS/SSL 保护自定义域教程将专用 CA 根证书上传/绑定到应用服务环境中的应用。

后续步骤