Azure CDN HTTPS加速服务-用户自有证书

Azure CDN提供HTTPS安全加速服务,支持用户上传自有证书,只开放给付费用户。本文档针对证书自助化配置的情况以及支持的证书类型进行说明。

配置说明

  • HTTPS加速只开放给付费用户。
  • 支持泛域名的HTTPS加速。
  • 支持的加速类型为标准版CDN加速类型,如网页加速,下载加速,点播加速和直播加速。

    注意 图片处理加速类型暂不支持线上配置HTTPS加速,如需开通,请联系Azure 技术支持团队开工单进行线下配置。

  • 需要在Azure CDN管理界面启用HTTPS服务,并上传PEM格式的证书和秘钥。详见后文的“自助式启用HTTPS加速步骤”。
  • 开启HTTPS加速后,默认同时支持HTTP和HTTPS方式的请求。如需强制将HTTP请求跳转成HTTPS请求,请联系世纪互联进行配置。我们后续会在管理界面实现自动化选择。
  • 回源协议默认跟随用户发起的请求协议,即HTTP请求通过HTTP协议回源,HTTPS请求通过HTTPS协议回源。如需指定只有HTTP回源或者只有HTTPS回源,请联系世纪互联进行配置。我们后续会在管理界面实现自动化选择。
  • 需设置Azure密钥保管库用于保管证书,同时需要为密钥保管库配置Azure Active Directory (简称AAD),并提供AAD以便获取访问您的密钥保管库的权限。请参考配置密钥保管库进行密钥保管库配置,并保存以下信息,用于配置密钥保管库:
    • 密钥保管库的DNS名称
    • Azure Active Directory客户端ID
    • Azure Active Directory密码

证书说明

  • 用户自有证书的HTTPS加速是基于SNI技术实现的,SNI证书可以多个HTTPS 客户共享同一个IP 地址。
  • 注意 SNI证书不支持Windwos XP系统下所有的IE版本,浏览器会提示不受信任。

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

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

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

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

证书格式说明

  • 证书格式为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
    

PFX格式转换为PEM

  • 证书转换

    openssl pkcs12 -in cert.pfx -nokeys -out cert.pem
    
  • 私钥转换

    openssl pkcs12 -in cert.pfx -nocerts -out key.pem -nodes
    

    自助式启用HTTPS加速步骤

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

注意如果需要在“Azure门户预览”中新建CDN Profile和节点,并且启用自有证书的HTTPS加速,Pricing Tier请选择“S1 Standard”。"P1 Premium"是指之前已经申请过 Azure CDN 代为申请证书、并且仍然在使用该证书服务的用户,依旧按照高级版付费。

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

    Azure门户预览中的CDN profile界面:

    Azure CDN管理门户界面:

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

  3. 如果您尚未配置密钥保管库用于存储证书信息,请参考配置密钥保管库进行密钥保管库配置,并根据以下步骤上传证书: a. 点击“进入配置页面”

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

    • 密钥保管库的DNS名称
    • Azure Active Directory客户端ID
    • Azure Active Directory密码

    c. 点击保存

    d. 保存成功后,可以返回证书管理页面进行操作。

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

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

  • 如果您已配置密钥保管库用于存储证书信息,请直接上传证书。
  • 域名绑定证书:可以在“证书管理”中绑定,也可以在“域名管理”中绑定。

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

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

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

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

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

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

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

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

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

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

  4. 查看是否生效:通过HTTPS访问域名,可以看到带小锁的标志,表示HTTPS加速启用成功。

更换证书和删除证书

删除证书

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

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

更换证书

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

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

  • 选择需要更换的证书,点击保存。

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

配置密钥保管库

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

  • 使用Azure CDN提供的PowerShell脚本,适用于Windows用户。
  • 在Azure站点手动创建,适用于所有用户。 >注意请注意保存以下信息: > - 密钥保管库的DNS名称 > - Azure Active Directory客户端ID > - Azure Active Directory密码

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

  1. GitHub下载所有文件到本地某个目录下,比如C:\Download
  2. 可以以管理员权限选择如下任意一种方式运行所需的脚本:
    • 运行"OneClick_SetupKeyVault.cmd"文件:建议的方式。使用默认参数一键完成配置。
    • 运行"OneClick_SetupKeyVault.ps1"文件:有特殊需要的用户使用。可以指定Azure订阅号、资源组、密钥保管库名和AAD应用程序名来完成配置。
  3. 如果电脑出现以下信息,请点击"更多信息",点击运行(Run Anyway)。

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

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

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

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

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

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

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

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

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

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

  2. 点击应用注册和新应用程序注册。

  3. 为您的应用程序输入一个有意义的名称(例如:MyKeyVaultAADApp),应用程序类型选择“Web应用/API”,为a登录URL输入任何有效的URL(例如:https://mykeyvaultaadapp/)。

  4. 选择您注册的应用程序,复制并记录应用程序ID。

  5. 点击设置并选择密钥。

  6. 输入密钥名称并选择持续时间,点击保存,密钥值会自动生成。

  7. 复制并记录密钥值。

手动创建密钥保管库

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

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

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

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

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

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

  1. 选择访问策略,然后点击新增。

  2. 点击选择主体,在选择输入框输入您的Azure Active Directory应用程序名称,选择您的Azure Active Directory应用程序,点击选择。

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

  4. 点击保存。

价格说明

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