双向认证

功能简介

HTTPS 双向认证,又称为双向 TLS 认证或客户端认证,是一种安全通信协议,其中服务器和客户端都需要验证对方的身份。在标准 HTTPS 中,主要是服务器向客户端证明自己的身份(通过服务器证书),从而建立起一个安全的、加密的通信通道。双向认证在此基础上更进一步,要求客户端也提供证书,由服务端验证客户端的身份。这种方式常用于需要高度安全的系统,以确保通信双方都是可信任的。

准备工作

一本服务端证书,分别是 server.pem、server.key;
一本客户端证书,分别是 client.pem、client.key;
根证书:CA.pem,该证书需要将完整的证书链提前上传至至 腾讯云 SSL 控制台,该证书需要包含完整的证书链,格式要求可参考:CA 证书格式和证书链规范
说明:
如果您当前还没有购买服务端证书和客户端证书,在测试环境下,您也可以参考使用 OpenSSL 生成自签名证书来生成自签名证书。

使用限制

当前每个域名仅支持配置 1 本客户端 CA 证书,支持 RSA、ECC 或者 SM2 国密算法证书。
如果服务端配置的是国密算法证书,客户端 CA 证书也必须为国密算法证书。

操作步骤

例如:需要针对 www.example.com 域名配置双向认证, 客户端 CA 证书已上传至腾讯云 SSL 控制台内。
1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点
2. 在站点详情页面,单击域名服务 > 域名管理。
3. 在域名管理页面,选择待配置证书的域名,在 HTTPS 列内单击编辑,弹出 HTTPS 证书配置,在双向认证配置中,打开边缘双向认证开关并选择已有的客户端 CA 证书进行配置。

4. 单击确定,即可下发配置,部署完成后即可生效。配置完成后,客户端需要携带由该客户端 CA 证书签发的客户端证书进行访问,否则无法完成 HTTPS 握手。您也可以通过参照以下 curl 命令,携带客户端证书信息来验证是否握手成功。
curl https://www.example.com --cert client.crt --key client.key -v -k
其中,--cert 为客户端公钥证书在本地的路径,--key 为客户端私钥证书在本地的路径。

热点问题

测试时报错,返回:Empty reply from server?

这种情况下,最常见的可能性是由于当前配置的客户端 CA 证书的证书链不完整,您需要将完整的证书链内容拼接到一起,上传到腾讯云 SSL 控制台内,拼接内容的顺序需要严格按照 CA 证书格式和证书链规范 的顺序进行拼接。