HTTPS 加速

HTTPS 加速说明

  • 它支持通配符域名的 HTTPS 加速。
  • 支持的加速类型是 CDN 标准版本和标准增强版本所支持的类型,如 Web 加速、下载加速、VOD 加速、图像处理加速和实时传送视频流加速。
  • 可以选择回源协议类型,例如 HTTP 回源、HTTPS 回源或协议跟随。
  • 可以强制 HTTP 请求跳转到 HTTPS 请求。
  • 支持中国大陆地区和海外加速(全球加速)。

使用证书的前提条件

  • 用户在 Azure 密钥保管库中管理 HTTPS 证书。 Azure CDN 要求创建 Azure Active Directory (AAD) 应用程序,并通过 AAD 应用程序获取访问密钥库中的 HTTPS 证书。 请参考配置密钥保管库进行密钥保管库可配置,并保存以下信息,用于配置密钥保管库。

    • 密钥保管库的 DNS 名称
    • Azure Active Directory 应用程序(客户端)ID
    • Azure Active Directory 应用程序(客户端)密码
  • 目前用户可通过两种方式配置密钥保管库

    1. 使用 Azure CDN 提供的 PowerShell 脚本配置密钥保管库
    2. 在 Azure 门户中手动配置密钥保管库
  • 进入 CDN 管理门户,在“证书管理”页面,进行密钥保管库配置, 具体操作步骤如下:

    a. 单击“添加 SSL 证书”,然后单击“配置”,进入“配置管理”页面。

    b. 在密钥保管库配置界面中,输入配置密钥保管库时保存的以下信息,然后单击“保存”。

    • 密钥保管库 DNS 名称

    • Azure Active Directory 应用程序(客户端)ID

    • Azure Active Directory 应用程序(客户端)密码

    c. 保存信息后,可以单击“证书管理”,以返回到“证书管理”页面。

证书

  • 用户拥有的证书的 HTTPS 加速基于 SNI 技术。 SNI 证书允许多个 HTTPS 客户端共享同一个 IP 地址。

    重要

    SNI 证书不支持 Windows XP 上所有版本的 Internet Explorer,因此,如果你使用的浏览器不受信任,你将收到通知。

  • 启用 HTTPS 加速后,需要为加速域名上传证书和私钥。 证书必须与域名匹配,私钥必须与证书匹配。 否则,将发生身份验证错误。

    重要

    对于在 45 天内过期的证书,不支持证书和域名绑定,对于在 60 天内过期的证书,则不支持上传。

  • 你可以查看证书的详细信息,但不能下载证书或查看私钥。 采取适当的预防措施来保护相关信息。

  • 支持证书链。 证书链的各个 PEM 文件必须按以下顺序包括多个证书:公共证书、中间证书、根证书。 每个证书必须以 -----BEGIN CERTIFICATE----- 开头,以 -----END CERTIFICATE----- 结尾。

证书格式

  • 支持 PEM 和 PFX 证书格式。 目前不支持其他格式的证书,证书需要转换为 PEM 格式,可以使用 OpenSSL 工具完成此操作。 请参阅“常见证书格式转换”部分。

  • ECDSA 不受支持

  • 证书以 -----BEGIN CERTIFICATE----- 开头,以 -----END CERTIFICATE----- 结尾。

  • 私钥目前支持 PKCS1 和 PKCS8 编码。 PKCS1 编码的私钥的格式以 -----BEGIN RSA PRIVATE KEY----- 开头,以 -----END RSA PRIVATE KEY----- 结尾;PKCS8 编码的私钥以 -----BEGIN PRIVATE KEY----- 开头,以 -----END PRIVATE KEY----- 结尾。

    重要

    可以使用 OpenSSL 工具来执行私钥编码格式转换,例如:

    openssl.exe pkcs8 -topk8 -inform PEM -outform PEM -in yourkeyfile.key -out yourconverted.key -nocrypt 
    

常见证书格式转换

将 DER 格式转换为 PEM

  • 证书转换:

    openssl x509 -in cert.der -inform DER -out cert.pem -outform PEM
    
  • 私钥转换:

    openssl rsa -in privagekey.der -inform DER -out privatekey.pem -outform PEM
    

如何自行启用 HTTPS 加速

当密钥保管库配置好后,需要在“Azure CDN 管理界面”启用 HTTPS 服务,上传 PEM 或 PFK 格式证书,或者使用密钥保管库中已存在的证书

可以为满足条件的所有 CDN 域名启用客户提供的证书的 HTTPS 加速(付费帐户中具有所有标准版本加速类型的 CDN 域)。

  • 如果需要在 Microsoft Azure 门户中创建新的 CDN 配置文件和节点并启用客户自有证书的 HTTPS 加速,请为定价层选择“S1 标准”。

    • “S1 标准”即标准版 CDN,支持静态内容加速,包括网页加速、下载加速、VOD 加速、图片处理。
    • “P1 标准增强层”即标准增强版,指实时流加速。

  1. 点击“管理”进入 Azure CDN 管理门户

    Azure 门户中的 CDN 配置文件界面:

    Azure CDN 管理门户界面:

  2. 上传证书:单击“证书管理”,然后单击“添加 SSL 证书”。

    注意

    如果你尚未配置密钥保管库用于存储证书信息,请参考配置密钥保管库进行密钥保管库配置。

    在“证书管理”界面中,输入证书的名称,以便识别。 上传需要启用 HTTPS 服务的域名证书。 证书必须采用 PEM 格式。 目前,密钥只支持 RSA PKCS8 和 PKCS1 编码格式。 有关具体证书格式转换,请参阅上文的“证书”部分。

    重要

    上传证书后,需要转到“证书管理”或“域名管理”界面,将证书绑定到域名,然后才能部署证书。 对于在 60 天内过期的证书,不支持上传。

  • 如果已将密钥保管库配置为保存证书信息,则可以直接上传证书。

    重要

    对于在 45 天内过期的证书,不支持证书和域名绑定。

    用户可通过以下三种方式之一将证书绑定到域名:

    1. 可以直接在“证书管理”处上传证书时选择要绑定的域名

    2. 也可以上传证书后绑定域名,方法是在证书管理页面,选择证书,然后“编辑绑定”->“添加绑定域名”。

    3. 或者点击“域名管理”,选择需要启用 HTTPS 服务的域名, 在界面右侧选择“HTTPS (客户自有证书)”,然后单击“启用”以绑定证书。 从上传的证书下拉列表中选择上传的证书,然后单击“确定”。 如果没有符合的证书,点击“证书管理”,参考步骤 2 上传证书

  1. 证书部署:绑定域名后,系统会提示“证书正在部署中,生效时间一般为 2-4 小时”。 如果超过 24 小时部署仍未完成,请与我们联系”。

  2. 可以设置“回源方式”、“强制跳转 HTTPS”,点击“保存”

  3. 域名绑定成功后,系统会提示“证书绑定成功。 可以通过 HTTPS 访问该加速域名”。并看到证书详情。 同时该域名的“HTTPS 状态(客户自有证书)”变为“活跃”。

    • 选择该域名查看证书的详细信息。

    • 域名“HTTPS 状态(客户自有证书)”变为“活跃”。

    • 在“证书管理”中,该证书绑定域名数也会变化。

  4. 查看证书详情:点击“证书管理”处任一证书,查看证书详情和所绑定域名信息。

  5. 查看是否生效。 如果使用 HTTPS 访问域名时看到一个小的锁标志,则此符号指示已成功激活 HTTPS 加速。

替换和删除证书

删除证书

可以在“证书管理”删除证书。 选择要删除的证书,然后在右侧的窗口中按“删除”。

重要

如果证书有绑定域名,则必须先解除证书和域名的绑定,然后才能删除证书。 否则,将显示一条弹出消息,提示需要删除证书。 可以替换域名的证书,也可以直接删除域名。 有关如何替换证书的详细信息,请参阅“替换证书”部分。

替换证书

如果证书即将过期或者证书已经过期,可以上传新的有效证书,并到“域名管理”处对相应域名进行更换证书操作

  • 选择要更换证书的域名,转到 HTTPS(客户提供的证书),并更换证书:

  • 选择需要替换的证书。 可以设置“回源方式”、“强制跳转 HTTPS”,点击“保存”

  • 重复该过程中的步骤 4、5、6 和 7,自动启用 HTTPS 加速。

证书自动轮换

与 Azure 密钥保管库集成的 Azure CDN 可简化证书续签过程。 对于通过 Azure 密钥保管库管理的 HTTP 证书,Azure CDN 能够提取新证书并将其分发到 CDN 平台,从而节省在 Azure CDN 上手动重新上传新证书的时间。

当以下前提条件都满足时方可成功启用“证书自动更替”

  1. 使用 Azure 密钥保管库和 Azure CDN 证书管理完成设置
  2. 证书必须满足以下条件,CDN 平台才能正确处理:
    1. 证书链信息完整,其中包含链顺序详细信息
    2. 无法自签名
    3. “使用者可选名称”字段必须包含支持的域
    4. 仅限 RSA 密钥,不支持 EC
  3. 此功能仅适用于 Azure 密钥保管库管理的证书。 直接通过 Azure CDN 门户上传的证书无法利用此功能
  4. 授予 Microsoft.AzureFrontDoor-Cdn(621bd413-f6cc-4be5-b3fe-a82c12af6629) 对 Azure 密钥保管库证书的访问权限
    1. 使用 AppID 621bd413-f6cc-4be5-b3fe-a82c12af6629 在租户的 Azure Active Directory 中注册 Azure CDN 的服务主体
    2. 在密钥保管库帐户中,选择“访问策略”
    3. 选择添加新策略创建以创建新的访问策略。
    4. 在“机密权限”中,选择 Get 和 List,以允许 Front Door 检索证书
    5. 在“证书权限”中,选择 Get 和 List,以允许 Front Door 检索证书
    6. 在“选择主体”中,搜索 621bd413-f6cc-4be5-b3fe-a82c12af6629,然后选择 Microsoft.AzureFrontDoor-Cdn。 选择下一步。
    7. 在“应用程序”中,选择“下一步”
    8. 在“查看 + 创建”中,选择“创建”

若要激活证书自动轮换功能,请访问“域管理”,选择“自定义域”并导航到“HTTPS (自有证书)”

重要

当多个域使用同一个 HTTPS 证书时,需要通过各自定义域激活此功能。使用密钥库续签启用功能的证书后,部署时间应少于 12 小时,如果 12 小时后仍未完成部署,请提交支持工单。

启用“证书自动更替”后,“证书管理”指纹信息也会有相应的更新

名称:证书的自定义名称

指纹:证书可能有一个或多个关联的指纹。 续签的证书最终至少会有两个指纹,分别代表当前证书和请求的新证书

域:与证书关联的域。 单击证书可查找更多详细信息。

注册 Azure CDN

使用 Azure PowerShell 或 Azure CLI 在 Azure Active Directory (Azure AD) 中将 Azure CDN 的服务主体注册为应用。

注意

此操作需要在 Azure AD 中具有全局管理员角色权限。 每个 Azure AD 租户只需执行一次注册。 应用程序 ID 由 Azure 专门为 Azure CDN 命令分配,以供参考:

Connect-AzureAD -TenantID {yourTenantId} -AzureEnvironmentName AzureChinaCloud
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq 'Global Administrator'}

除非定义了其他范围,否则分配的角色仅用于所选订阅。

Azure PowerShell
  1. 根据需要在本地计算机上的 PowerShell 中安装 Azure PowerShell

  2. 在 PowerShell 中运行以下命令:

    New-AzADServicePrincipal -ApplicationId "621bd413-f6cc-4be5-b3fe-a82c12af6629"
    
Azure CLI
  1. 如果需要,可在本地计算机上安装 Azure CLI

  2. 在 CLI 中运行以下命令:

    az ad sp create --id 621bd413-f6cc-4be5-b3fe-a82c12af6629
    

加速区域 全球加速

启用“海外加速”或“全球加速”

选择“加速区域”、“启用海外加速”或“启用全球加速”(全球加速包括中国大陆加速和海外加速),然后单击“保存”。

重要

启用海外加速后,大约需要 1 小时才能生效。

检查海外加速是否生效

在“域名管理”中查看列表,了解加速类型是否已经包含海外加速

检查海外计费方法

在“概述”页面中查看计费方式,了解是否已经包含海外加速

密钥保管库配置

可以通过以下两种方法来创建密钥保管库和 Azure Active Directory 应用程序注册。

  • Windows 用户可以使用 Azure CDN 提供的 PowerShell 脚本。

  • 所有用户都可以在 Azure 网站上手动创建密钥保管库。

    注意

    请务必保存以下信息:

    • 密钥保管库 DNS 名称
    • Azure Active Directory 应用程序(客户端)ID
    • Azure Active Directory 应用程序(客户端)密码

1.使用 Azure CDN 提供的 PowerShell 脚本配置密钥保管库

  1. GitHub 下载所有文件到本地某个目录下,比如 C:\Download

  2. 可以“以管理员权限”选择如下任意一种方式运行所需的脚本

    • 运行“OneClick_SetupKeyVault.cmd”文件:建议的方式。 使用默认参数执行一键式配置。
    • 运行“OneClick_SetupKeyVault.ps1”文件:有特殊需要的用户使用。 若要完成配置,请指定 Azure 订阅编号、资源组、密钥保管库名称和 AAD 应用名称。
  3. 如果计算机显示以下消息,请单击“详细信息”,然后单击“仍然运行”。

  4. 请按照提示确认运行脚本

  5. 如果相应的运行时没有安装,请按照以下步骤安装运行时库:

    a. 输入 Y 以允许安装运行脚本所需的运行时库。

    b. 请输入 Y,以允许安装运行脚本所需的运行时库。

    c. 正在安装运行脚本所需的运行时库,这大约需要 5-10 分钟。

  6. 运行库已安装完成。 请在弹出的对话框中输入 Azure 用户名和密码,然后单击“确定”。

  7. 你将收到如下屏幕截图所示的信息。 请保存 KeyVault(密钥保管库 DNS 名称)、AAD Application ClientId(Azure Active Directory 客户端 ID)和 AAD Application ClientSecret(Azure Active Directory 密码)的值。

2.在 Azure 门户中手动配置密钥保管库

创建 Azure Active Directory 以控制密钥保管库权限

  1. 访问 Azure 站点 https://portal.azure.cn/,进入 Azure Active Directory

  2. 依次单击“应用注册”和“新注册”。

  3. 为应用程序输入有意义的名称(例如:MyKeyVaultAADApp)。 在“支持的帐户类型”中选择相应的帐户。如果不知道帐户类型,请单击“帮我选择...”了解不同的帐户类型。

  4. 重定向 URI(可选):可以选择输入任何有效的 URI(例如:https://mykeyvaultaadaap/),然后单击“注册”。也可以保留为空。

  5. 复制“应用程序(客户端) ID”值。

  6. 单击左侧的“证书和密码”,然后在客户端密码字段中单击“输入客户端密码”。

  7. 在“添加客户端密码”页面上,在“说明”字段中填写详细信息(也可以留空),在“到期日期”下选择“从不”,然后单击“添加”

  8. 客户端密码值已添加。 密码值显示在页面的“值”字段中。 单击“复制”以保存密码。 请注意,离开此边栏选项卡后,将无法检索它。

手动创建密钥保管库

  1. 单击“创建资源”,在搜索框输入“密钥保管库”,然后按 Enter。

  2. 选择密钥保管库,然后单击“创建”。

  3. 为密钥保管库输入有意义的名称(例如:MyCertificateKeyVault)以及订阅、资源组和位置后,单击“创建”。

  4. 进入创建的密钥保管库,然后复制并记录 DNS 名称。

    重要

    请务必保存密钥保管库的 DNS 名称

为密钥保管库配置 Azure Active Directory 访问策略

  1. 单击“访问策略”,然后单击“添加访问策略”。

  2. 单击“选择主体”,在选择输入框中输入你的 Azure Active Directory 应用程序名称(也可以从下拉列表中选择),选择你的 Azure Active Directory 应用程序,然后单击“选择”。

  3. 在“机密权限”中选择 Get 和 List,在“证书权限”中选择 Get、List、Create 和 Import,然后单击“确定”。 这是 CDN 正确获取证书并完成后续配置所需的最低权限级别。

  4. 单击“保存” 。

定价

标准版本服务定价适用于客户提供的证书的 HTTPS 加速。 具体计费方式请参见 Azure 网站