一、功能简介
在客户端和边缘节点进行 HTTPS 连接时,如果当前已配置了边缘 HTTPS 证书,EdgeOne 可支持在此基础上进一步要求提供客户端证书,使用双向认证握手。
二、使用限制
·当前每个域名仅支持配置 1 本客户端 CA 证书,支持 RSA、ECC 或者 SM2 国密算法证书。
·如果服务端配置的是国密算法证书,客户端 CA 证书也必须为国密算法证书。
三、准备工作
·已参考边缘 HTTPS 证书,为域名配置好服务端证书。
·准备客户端证书,分别是 client.crt、client.key,该证书用于在请求中携带给 EdgeOne 边缘节点验证。
·准备为客户端证书签发的 CA 证书:CA.crt,该证书需要将完整的证书链提前上传至 腾讯云 SSL 控制台,格式要求可参见 CA 证书格式和证书链规范。
完成以上准备后,请参考以下命令先验证是否可以通过 CA.crt 和 client.crt 是否匹配。
openssl verify -CAfile CA.crt client.crt
输出结果中,如果显示 client.crt:OK,则说明该证书签发链路正确。参考如下:
client.crt: OK
注意:说明:
注意:如果你当前还没有购买服务端证书和客户端证书,在测试环境下,你也可以参见 使用 OpenSSL 生成自签名证书 来生成自签名证书。
四、操作步骤
例如:需要针对 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 为客户端私钥证书在本地的路径。
五、Curl 命令测试时报错,返回:Empty reply from server?
参考以下类似报错,这种情况下,最常见的可能性是由于当前配置的客户端 CA 证书的证书链不完整,你需要将完整的证书链内容拼接到一起,上传到腾讯云 SSL 控制台内,需要严格按照 CA 证书格式和证书链规范 的顺序进行拼接。建议参考准备步骤中的 openssl 命令,先校验 CA 证书和客户端证书的信任链,确保链路没有问题。
* Request completely sent off* Empty reply from server* Closing connectioncurl: (52) Empty reply from server