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 应用程序(客户端)密码
目前用户可通过两种方式进行配置密钥保管库:
进入CDN管理门户,在证书管理页面,进行密钥保管库配置,步骤如下:
a. 点击“添加一张SSL证书”,点击“配置”,进入到配置管理页面。
b. 根据配置密钥保管库时保存的以下信息,填写到密钥保管库配置界面,点击“保存”。
- 密钥保管库DNS名称
- Azure Active Directory 应用程序(客户端)ID
- Azure Active Directory 应用程序(客户端)密码
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,指直播加速。
点击Manage进入Azure CDN管理门户。
Azure门户中的CDN profile界面:
Azure CDN管理门户界面:
上传证书:点击证书管理,点击“添加一张SSL证书”。
备注
如果您尚未配置密钥保管库用于存储证书信息,请参考配置密钥保管库进行密钥保管库配置。
在证书管理界面,请直接输入证书名称,便于分辨证书。上传需要启用HTTPS服务的域名证书,注意证书必须是PEM格式,密钥目前只支持RSA PKCS8编码格式。具体证书格式转换请参考上文的“证书说明”。
重要
证书上传后,需要到“证书管理”界面或"域名管理"界面,将证书和域名进行绑定,证书才会进行部署。证书有效期少于60天,不支持上传。
如果您已配置密钥保管库用于存储证书信息,请直接上传证书。
重要
证书有效期少于45天,不支持证书和域名绑定;
用户可以通过以下3种方式之一,进行证书和域名的绑定:
可以直接在证书管理处上传证书时选择要绑定的域名;
也可以上传证书后,在证书管理页面,选择证书,点击“编辑绑定”-> “添加绑定域名”;
或者点击域名管理,选择需要启用HTTPS服务的域名,在右侧界面选择“HTTPS(客户提供证书)”,点击“启用”绑定一张证书,从上传证书下拉列表框中选择已上传的证书,点击确定。如果没有符合的证书,点击证书管理,参考步骤2上传证书。
证书部署:绑定域名后,系统会提示“证书正在部署中,生效时间一般为2-4小时,如果超过24小时部署仍未完成,请联系工作人员。
可以设置回源方式, 强制跳转HTTPS 以及 HTTP2,点击保存。
域名绑定成功后,系统会提示“证书绑定成功,可以通过HTTPS访问该加速域名”,并看到证书详情。同时该域名的“HTTPS状态(客户提供证书)”变为”活动“。
点击该域名,可以查看证书信息。
域名“HTTPS状态(客户提供证书)”变为“活动”。
“证书管理”处,该证书绑定域名数也会变化。
查看证书详情:点击证书管理处任一证书,查看证书详情,和所绑定域名信息。
查看是否生效:通过HTTPS访问域名,可以看到带小锁的标志,点击查看是否证书已经部署完成。
更换证书和删除证书
删除证书
删除证书需在证书管理处进行删除。选中需要删除的证书,在右边的窗口中点击删除。
重要
已有域名绑定的证书,需要将证书和域名解绑,然后才能删除证书,否则会出现需要将证书删除的弹框。可以通过为域名更换证书,或者直接将域名删除的方式。更换证书请参考更换证书部分。
更换证书
如果证书即将过期或者证书已经过期,可以上传新的有效证书,并到域名管理处对相应域名进行更换证书操作。
选中需更换证书的域名,HTTPS(客户提供证书),更换证书:
选择需要更换的证书,可以设置回源方式, 强制跳转HTTPS 以及HTTP2, 点击保存。
重复自助式启用HTTPS加速步骤中的4,5,6,7步骤。
证书自动更替
Azure CDN 平台通过与Azure Key Vault的整合来实现证书自动更替。当已托管至Azure Key Vault的HTTPS证书有了更新, Azure CDN会自动从Azure Key Vault获取新的证书并下发至CDN平台, 依此简化了您当HTTPS证书更新时需要在CDN平台上传新证书的步骤。
当以下前提条件都满足时方可成功启用“证书自动更替”:
- 参考 证书使用前提条件 完成密钥保管库及CDN 证书管理配置
- 仅适用于Azure Key Vault已有证书。 通过Azure CDN 平台直接上传的证书无法启用此功能。
- 请确保新版证书满足以下条件方能安全下放至CDN平台,不符合要求的证书将无法即时更新导致自动更新失效:
- 证书链信息完整,确保Chain Oder正确
- 非自签名证书
- Subject Alternative Name(SAN) 必须包含需要支持的域名
- 使用RSA密钥, EC格式不支持
- 授权Microsoft.AzureFrontDoor-Cdn(621bd413-f6cc-4be5-b3fe-a82c12af6629) 使用您的Azure Key Vault.
- 在您所在租户Azure Active Directory (Azure AD)中注册应用ID 621bd413-f6cc-4be5-b3fe-a82c12af6629.
- 选择“添加新策略”或“创建”以创建新的访问策略
- 在“机密权限” 中,选择 Get & List 以允许 CDN 检索证书
- 在“证书权限” 中,选择 Get & List 以允许 CDN 检索证书
- 在“选择主体”中,搜索“621bd413-f6cc-4be5-b3fe-a82c12af6629”,并选择“Microsoft.AzureFrontDoor-Cdn”。 选择“下一页”
- 在“应用程序”中,选择“下一步”
- 在“查看 + 创建”中,选择“创建”
进入 域名管理 界面,选择需要修改的自定义域名, HTTPS(客户提供证书) 点击启用或关闭 启用证书自动更替功能
重要
当多个域名共享一张证书时,功能仅在已启用的相关域名生效
证书自动更替启用后,Keyvault 更新后的证书应予12小时内进行部署。 如发现证书在合规的情况下没有在12小时内部署成功,请联系技术服务。
启用证书自动更替后 证书管理 指纹信息也会有相应的更新:
名称: 自定义证书名称
指纹: 一个证书名可以有一个或多个指纹名称。 在证书更新时会产生两个版本的证书,对应的会有两个指纹。
域名: 与该证书名称,指纹对应的域名. 可通过点击获取详细信息查看证书指纹于相对应的域名。
Azure AD注册 Azure CDN 应用ID
使用 Azure PowerShell 或 Azure CLI 将 Azure CDN 服务主体注册为 Azure Active Directory (Azure AD) 中的应用。在您所在租户Azure Active Directory (Azure AD)中注册应用ID 621bd413-f6cc-4be5-b3fe-a82c12af6629.
[!备注]
- 此操作需要 Azure AD 中的全局管理员角色权限。 每个 Azure AD 租户只需执行一次注册。以下命令作为全局管理员添加Azure AD权限的参考:
- Connect-AzureAD -TenantID {yourTenantId} -AzureEnvironmentName AzureChinaCloud
- $ role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq 'Global Administrator'}
- 应用程序 ID 由 Azure 专门为 Azure CDN 分配。
- 除非定义了其他范围,否则分配的角色仅用于所选订阅。
Azure PowerShell
根据需要在本地计算机上的 PowerShell 中安装 Azure PowerShell
在 PowerShell 中运行以下命令:
New-AzADServicePrincipal -ApplicationId "621bd413-f6cc-4be5-b3fe-a82c12af6629"
Azure CLI
如果需要,可在本地计算机上安装 Azure CLI
在 CLI 中运行以下命令:
az ad sp create --id 621bd413-f6cc-4be5-b3fe-a82c12af6629
加速区域 全球加速
启用海外加速或全球加速
选择"加速区域",启用海外或者启用全球加速(全球加速包括中国和海外加速),点击保存
重要
启用海外加速后,大概需要1个小时生效。
查看海外加速是否已经生效
在域名管理中查看列表,加速类型是否已经包含海外加速
查看海外计费方式
在Overview页面中查看计费方式,是否已经包含海外加速
配置密钥保管库
您可以使用以下两种方式创建密钥保管库和Azure Active Directory应用注册。
使用Azure CDN提供的PowerShell脚本,适用于Windows用户。
在Azure站点手动创建,适用于所有用户。
请注意保存以下信息:
- 密钥保管库DNS名称
- Azure Active Directory应用程序(客户端)ID
- Azure Active Directory应用程序(客户端)密码
1. 使用AzureCDN提供的PowerShell脚本配置密钥保管库
从GitHub下载所有文件到本地某个目录下,比如C:\Download
可以以管理员权限选择如下任意一种方式运行所需的脚本:
- 运行"OneClick_SetupKeyVault.cmd"文件:建议的方式。使用默认参数一键完成配置。
- 运行"OneClick_SetupKeyVault.ps1"文件:有特殊需要的用户使用。可以指定Azure订阅号、资源组、密钥保管库名和AAD应用程序名来完成配置。
如果电脑出现以下信息,请点击"更多信息",点击运行(Run Anyway)。
请按照提示来确认运行脚本
若相应的运行时没安装,请按照以下步骤安装运行时库: a. 输入Y,允许安装运行脚本需要的运行时库。
b. 请输入Y,同样是允许安装运行脚本需要的运行时库。
c. 正在安装运行脚本需要的运行时(runtime)库,大概等待5-10分钟。
安装运行时库完成,请在弹出的对话框中输入Azure账号和密码,点击确定。
得到如下截图信息,请保存KeyVault(密钥保管库DNS名称),AAD Application ClientId (Azure Active Directory客户端ID)和AAD Application ClientSecret(Azure Active Directory密码)的值。
2. 在Azure portal手动配置密钥保管库
创建Azure Active Directory用于密钥保管库的权限控制
访问Azure站点https://portal.azure.cn/,进入Azure Active Directory。
点击“App registrations”及“新注册”。
为您的应用程序输入一个有意义的名称(例如:MyKeyVaultAADApp);在“受支持的账户类型”中选择相应账户,如不了解账户类型,请点击“帮我选择..."了解不同账户类型。
重定向URI(可选):可选择输入任何有效的URI(例如:https://mykeyvaultaadaap/),并点击“注册”。此处也可留白。
对“应用程序(客户端)ID”值进行复制。
点击左侧“证书和密码”,在客户端密码处点击“进客户端密码”。
在添加客户端密码页面中,“说明”处填写内容(也可留白),“截止期限”选择“从不”,点击“添加”。
客户端密码值添加完成。页面中“值”处显示密码值,点击“复制”对密码进行保存。请注意离开此边栏选项卡后,将无法检索它。
手动创建密钥保管库
点击创建资源,在搜索框输入“key vault”,并回车。
选择Key Vault,并点击创建。
输入有意义的密钥保管库名称(例如:MyCertificateKeyVault)、订阅、资源组和位置之后点击创建。
进入您创建的密钥保管库,复制并记录DNS名称。
重要
请注意保存密钥保管库的DNS名称
为密钥保管库配置Azure Active Directory访问策略
点击访问策略,然后点击“添加访问策略”。
点击"选择主体",在选择输入框输入您的Azure Active Directory应用程序名称(也可下拉选择),选择好您的Azure Active Directory应用程序,点击“选择”。
为机密权限选择获取和列出,为证书权限选择获取、列出、创建和导入,点击确定。这是CDN能正确获取证书并进行后续配置的最小权限。
点击保存。
为密钥保管库配置允许所有网络访问
点击网络,然后点击“防火墙和虚拟网络”标签,在“允许的访问来源”一项,选择“所有网络”。
点击保存。
价格说明
自有证书的HTTPS加速,使用标准版服务价格,具体计费方式请参见Azure官方网站。