本文档介绍了火山引擎内容分发网络(CDN)提供的 "访问双向认证" 功能。
在为您的加速域名启用 HTTPS 访问后,如果您需要进一步提高安全性,可以开启 "访问双向认证" 功能,对用户的身份进行校验。
说明
要使用该功能,请 提交工单。
在访问双向认证中,CDN 使用预先配置的 CA 证书来校验用户身份。在用户向 CDN 发送请求的 SSL 建连阶段,客户端会向 CDN 发送客户端证书。在收到客户端证书后,如果 CDN 判断客户端证书是由这本 CA 证书签发的,该请求就通过了用户身份校验,否则 CDN 会拒绝该请求。
要启用 "访问双向认证",您的加速域名必须满足以下条件:
已 启用了 HTTPS 访问。
已上传了 CA 证书到 CDN 托管。关于上传 CA 证书的步骤,参见 内容分发网络证书托管。
登录 火山引擎内容分发网络控制台。
在左侧导航栏,点击 域名管理。
在 域名管理 页面,找到需要配置的域名,点击 管理。
在域名页面上,点击 HTTPS 配置 标签页。
在页面右上方,点击 编辑配置。
在 访问双向认证 下方,设置 状态 为启用。
如果您的业务有需要配置两本 CA 证书,可以设置 配置模式 为 双证书。参见 双证书说明。
在 CA 证书 列表中选择相应的 CA 证书。
设置完成后, 在页面右上角点击 提交编辑。
注意
在 "访问双向认证" 中,您仅可指定一个托管在 CDN 的 CA 证书,暂不支持指定托管在火山引擎证书中心的 CA 证书。
在 "访问双向认证" 中,以下任意情况都会导致配置报错:
加速域名未启用 HTTPS。
证书配置模式与服务器证书的证书配置模式不相同。
证书标准不包含服务器证书配置的证书标准。
在 "访问双向认证" 中,以下任意情况都会导致用户访问 CDN 时,CDN 校验客户端证书失败,并响应 400 状态码:
访问双向认证中配置的 CA 证书是中间 CA 证书。
访问双向认证中配置的 CA 证书的证书链超过三级。一个三级 CA 证书链的例子是 rootCA(根 CA)> iCA1(中间 CA)> iCA2(中间 CA)。
CDN 提供了配置双证书的能力。您可以为一个加速域名配置两本使用不同密钥算法的 CA 证书。
说明
要使用双证书功能,请 提交工单。
如果您启用了 双证书 的功能,配置模式 的可选项中会出现 双证书。
说明
您配置的两本证书不能都是国密证书。
您配置的两本证书不能具有相同的指纹。相同指纹的证书被认为是相同的证书。
说明
以下步骤展示了 HTTPS 单向认证和 HTTPS 双向认证的流程。HTTPS 双向认证的特定步骤以粗体文本显示。
客户端发起 HTTPS 建连请求,也就是向服务器发送 Client Hello 报文。
服务器响应 Server Hello 报文。报文中包含服务器的 SSL 证书。
客户端检查该 SSL 证书的有效性:
如果该 SSL 证书是有效的,继续步骤 4。
如果未通过检查,客户端发出警告,由用户决定是否继续。
客户端从该 SSL证书中获取该 SSL 证书的公钥。
客户端将其 SSL 证书发送给服务器。
服务器检查该 SSL 证书的有效性:
如果该 SSL 证书通过了检查,继续步骤 7。
如果未通过检查,服务器拒绝用户请求。
服务器从该 SSL证书中获取其公钥。
客户端将其支持的 TLS 加密套件以明文方式发送给服务器。
服务器选择一个 TLS 加密套件,使用客户端公钥将该信息加密后,发送给客户端。
客户端 使用其私钥解密该信息, 获得服务器选择的 TLS 加密套件。
客户端使用该 TLS 加密套件生成一个随机字符串,使用服务器的公钥加密后,发送给服务器。
服务器使用其私钥解密该字符串。
之后,客户端和服务器使用该字符串作为密钥对传输的数据进行加密。