HTTPS加速

HTTPS加速说明

  • 支持泛域名的HTTPS加速。
  • 支持的加速类型为标准版和标准版Plus的CDN加速类型,如网页加速,下载加速,点播加速,图片处理加速和直播加速。
  • 支持用户选择回源协议类型, 如HTTP回源,HTTPS回源,或者协议跟随。
  • 支持将HTTP请求强制跳转成HTTPS请求。
  • 支持中国区域加速,海外加速(或全球加速)。
  • 开启HTTPS后,用户无法禁用。

证书使用前提条件

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

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

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

    a. 点击“添加一张SSL证书”,点击“配置”,进入到配置管理页面。

    Add SSL Certificate

    b. 根据配置密钥保管库时保存的以下信息,填写到密钥保管库配置界面,点击“保存”。

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

    Config Key Vault

    c. 保存成功后,可以点击“证书管理”,返回到证书管理页面进行操作。

证书说明

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

    重要

    SNI证书不支持Windwos XP系统下所有的IE版本,浏览器会提示不受信任。

  • 开启HTTPS加速后,需要上传加速域名的证书和私钥,证书和域名、证书和私钥需要匹配,否则会校验出错。

    重要

    证书有效期少于45天,不支持证书和域名绑定;证书有效期少于60天,不支持上传。

  • 支持看证书信息,但不支持证书下载,也不支持秘钥查看,请保管好证书相关信息。

  • 支持证书链。证书链的单个PEM文件需按以下顺序包含多个证书: 公共证书, 中间证书, 根证书。各证书分别以-----BEGIN CERTIFICATE----------END CERTIFICATE----- 开头结尾。

证书格式说明

  • 通过Azure密钥保管库直接上传的证书为PFX格式

  • 通过Azure CDN管理界面上传的证书格式为PEM格式,暂不支持其他格式的证书,需将其他格式的证书转换成PEM格式,可以通过openssl工具进行转换。请参考下文“常见证书格式转换”。

  • 证书以 -----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格式证书,或者使用密钥保管库中已存在的证书。

可以为所有符合条件的CDN域名开启自有证书的HTTPS加速(付费账号下所有的标准版加速类型的CDN域名)。

  • 如果需要在“Azure门户”中新建CDN Profile和终结点,并且启用自有证书的HTTPS加速,Pricing Tier请选择“S1 Standard”。

    • "S1 Standard"即标准版CDN,支持静态内容加速,包括网页加速,下载加速,点播加速,图像处理。
    • "P1 Standard Plus"是标准版Plus,指直播加速。

    Pricing Tier Details

  1. 点击Manage进入Azure CDN管理门户。

    Azure门户中的CDN profile界面:

    Azure CDN Profile

    Azure CDN管理门户界面:

    Azure CDN Mangement Portal

  2. 上传证书:点击证书管理,点击“添加一张SSL证书”。

    备注

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

    在证书管理界面,请直接输入证书名称,便于分辨证书。上传需要启用HTTPS服务的域名证书,注意证书必须是PEM格式,密钥目前只支持RSA PKCS8编码格式。具体证书格式转换请参考上文的“证书说明”。

    重要

    证书上传后,需要到“证书管理”界面或"域名管理"界面,将证书和域名进行绑定,证书才会进行部署。证书有效期少于60天,不支持上传。

    Upload Certificate

  • 如果您已配置密钥保管库用于存储证书信息,请直接上传证书。

    重要

    证书有效期少于45天,不支持证书和域名绑定;

    用户可以通过以下3种方式之一,进行证书和域名的绑定:

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

      Certificate Management

    2. 也可以上传证书后,在证书管理页面,选择证书,点击“编辑绑定”-> “添加绑定域名”;

      Binding Certificate1 Binding Certificate2

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

      Domain Management

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

  2. 可以设置回源方式, 强制跳转HTTPS 以及 HTTP2,点击保存。

    Https setting1 Https setting2

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

    • 点击该域名,可以查看证书信息。 Certificate details1

    • 域名“HTTPS状态(客户提供证书)”变为“活动”。 Https Status

    • “证书管理”处,该证书绑定域名数也会变化。 Https Domain

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

    Certificate details2

  5. 查看是否生效:通过HTTPS访问域名,可以看到带小锁的标志,点击查看是否证书已经部署完成。

    Certificate deployment status

更换证书和删除证书

删除证书

删除证书需在证书管理处进行删除。选中需要删除的证书,在右边的窗口中点击删除。

Delete certificate

重要

已有域名绑定的证书,需要将证书和域名解绑,然后才能删除证书,否则会出现需要将证书删除的弹框。可以通过为域名更换证书,或者直接将域名删除的方式。更换证书请参考更换证书部分。

Replace certificate1

更换证书

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

  • 选中需更换证书的域名,HTTPS(客户提供证书),更换证书: Replace certificate2

  • 选择需要更换的证书,可以设置回源方式, 强制跳转HTTPS 以及HTTP2, 点击保存。 Https setting1 Https setting2

  • 重复自助式启用HTTPS加速步骤中的4,5,6,7步骤。

证书自动更替

Azure CDN 平台通过与Azure Key Vault的整合来实现证书自动更替。当已托管至Azure Key Vault的HTTPS证书有了更新, Azure CDN会自动从Azure Key Vault获取新的证书并下发至CDN平台, 依此简化了您当HTTPS证书更新时需要在CDN平台上传新证书的步骤。

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

  1. 参考 证书使用前提条件 完成密钥保管库及CDN 证书管理配置
  2. 仅适用于Azure Key Vault已有证书。 通过Azure CDN 平台直接上传的证书无法启用此功能。
  3. 授权Microsoft.AzureFrontDoor-Cdn(621bd413-f6cc-4be5-b3fe-a82c12af6629) 使用您的Azure Key Vault:
    1. 在您所在tenant的Azure Active Directory (Azure AD)中注册应用ID 621bd413-f6cc-4be5-b3fe-a82c12af6629
    2. 在密钥保管库帐户中,选择“访问策略”
    3. 选择“添加新策略”或“创建”以创建新的访问策略
    4. 在“机密权限” 中,选择 Get & List 以允许 CDN 检索证书
    5. 在“证书权限” 中,选择 Get & List 以允许 CDN 检索证书
    6. 在“选择主体”中,搜索“621bd413-f6cc-4be5-b3fe-a82c12af6629”,并选择“Microsoft.AzureFrontDoor-Cdn”。 选择“下一页”
    7. 在“应用程序”中,选择“下一步”
    8. 在“查看 + 创建”中,选择“创建”

进入 域名管理 界面,选择需要修改的自定义域名HTTPS(客户提供证书) 点击启用或关闭 启用证书自动更替功能

Enable Cert Rotate

重要

当多个域名共享一张证书时,功能仅在已启用的相关域名生效

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

Cert Management

名称: 自定义证书名称

指纹: 一个证书名可以有一个或多个指纹名称。 在证书更新时会产生两个版本的证书,对应的会有两个指纹。

域名: 与该证书名称,指纹对应的域名. 可通过点击获取详细信息查看证书指纹于相对应的域名。

加速区域 全球加速

启用海外加速全球加速

选择"加速区域",启用海外或者启用全球加速(全球加速包括中国和海外加速),点击保存 Acceleration

重要

启用海外加速后,大概需要1个小时生效。

查看海外加速是否已经生效

在域名管理中查看列表,加速类型是否已经包含海外加速 Acceleration details

查看海外计费方式

在Overview页面中查看计费方式,是否已经包含海外加速 Acceleration charging details

配置密钥保管库

您可以使用以下两种方式创建密钥保管库和Azure Active Directory应用注册。

  • 使用Azure CDN提供的PowerShell脚本,适用于Windows用户。

  • 在Azure站点手动创建,适用于所有用户。

    请注意保存以下信息:

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

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

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

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

    • 运行"OneClick_SetupKeyVault.cmd"文件:建议的方式。使用默认参数一键完成配置。
    • 运行"OneClick_SetupKeyVault.ps1"文件:有特殊需要的用户使用。可以指定Azure订阅号、资源组、密钥保管库名和AAD应用程序名来完成配置。
  3. 如果电脑出现以下信息,请点击"更多信息",点击运行(Run Anyway)。

    Run script1

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

    Confirm run1

  5. 若相应的运行时没安装,请按照以下步骤安装运行时库: a. 输入Y,允许安装运行脚本需要的运行时库。

    Confirm run2

    b. 请输入Y,同样是允许安装运行脚本需要的运行时库。

    Confirm run3

    c. 正在安装运行脚本需要的运行时(runtime)库,大概等待5-10分钟。

    Run script2

  6. 安装运行时库完成,请在弹出的对话框中输入Azure账号和密码,点击确定。

    Run script3

  7. 得到如下截图信息,请保存KeyVault(密钥保管库DNS名称),AAD Application ClientId (Azure Active Directory客户端ID)和AAD Application ClientSecret(Azure Active Directory密码)的值。

    AAD details1

2. 在Azure portal手动配置密钥保管库

创建Azure Active Directory用于密钥保管库的权限控制

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

    AAD details2

  2. 点击“App registrations”及“新注册”。

    App registrations

  3. 为您的应用程序输入一个有意义的名称(例如:MyKeyVaultAADApp);在“受支持的账户类型”中选择相应账户,如不了解账户类型,请点击“帮我选择..."了解不同账户类型。

    App registrations name

  4. 重定向URI(可选):可选择输入任何有效的URI(例如:https://mykeyvaultaadaap/),并点击“注册”。此处也可留白。

    App registrations URI

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

    App registrations application Id

  6. 点击左侧“证书和密码”,在客户端密码处点击“进客户端密码”。

    App registrations management1

  7. 在添加客户端密码页面中,“说明”处填写内容(也可留白),“截止期限”选择“从不”,点击“添加”。

    App registrations management2

  8. 客户端密码值添加完成。页面中“值”处显示密码值,点击“复制”对密码进行保存。请注意离开此边栏选项卡后,将无法检索它。

    Get credential

手动创建密钥保管库

  1. 点击创建资源,在搜索框输入“key vault”,并回车。

    Key vault

  2. 选择Key Vault,并点击创建。

    Create key vault1

  3. 输入有意义的密钥保管库名称(例如:MyCertificateKeyVault)、订阅、资源组和位置之后点击创建。

    Create keyvault2

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

    Keyvault details

    重要

    请注意保存密钥保管库的DNS名称

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

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

    Key vault Access policy1

  2. 点击"选择主体",在选择输入框输入您的Azure Active Directory应用程序名称(也可下拉选择),选择好您的Azure Active Directory应用程序,点击“选择”。

    Key vault access policy2

  3. 为机密权限选择获取和列出,为证书权限选择获取、列出、创建和导入,点击确定。这是CDN能正确获取证书并进行后续配置的最小权限。

    Key vault access policy permission1

    Key vault access policy permission2

  4. 点击保存。

    Key vault access policy permission3

为密钥保管库配置允许所有网络访问

  1. 点击网络,然后点击“防火墙和虚拟网络”标签,在“允许的访问来源”一项,选择“所有网络”。

    Key vault network

  2. 点击保存。

价格说明

自有证书的HTTPS加速,使用标准版服务价格,具体计费方式请参见Azure官方网站