tencent cloud

边缘安全加速平台 EO

动态与公告
产品动态
安全公告
产品公告
产品简介
产品概述
产品优势
应用场景
EdgeOne 与 CDN 等产品功能对比
使用限制
购买指南
试用套餐体验权益说明
免费版套餐使用说明
计费概述
计费项目
购买指引
续费指引
欠费与退款说明
套餐选型对比
关于“干净流量”计费说明
DDoS 防护容量说明
快速入门
选择业务场景
快速接入网站安全加速
通过 Pages 快速部署网站
域名服务与源站配置
域名服务
HTTPS 证书
源站配置
站点加速
概述
访问控制
智能加速
缓存配置
文件优化
网络优化
URL 重写
修改头部
修改应答内容
规则引擎
图片与视频处理
单连接下载限速
DDoS 与 Web 防护
概述
DDoS 防护
Web 防护
Bot 管理
API 资产识别(Beta)
边缘函数
概述
快速指引
操作指引
Runtime APIs
示例函数
实践教程
Pages
四层代理
概述
新建四层代理实例
修改四层代理实例配置
停用/删除四层代理实例
批量配置转发规则
获取客户端真实IP
数据分析与日志服务
日志服务
数据分析
告警服务
站点与计费管理
计费管理
站点管理
版本管理
通用策略
通用参考
配置语法
请求与响应行为
国家/地区及对应代码枚举
Terraform
Terraform 简介
安装和配置 Terraform
实践教程
自动预热/清除缓存
防盗刷/盗链实践
HTTPS 相关实践
加速优化
流量调度
数据分析与告警
第三方日志平台集成实践
对象存储类源站(例如:COS)配置实践
跨域响应配置
API 文档
History
Introduction
API Category
Making API Requests
Site APIs
Acceleration Domain Management APIs
Site Acceleration Configuration APIs
Edge Function APIs
Alias Domain APIs
Security Configuration APIs
Layer 4 Application Proxy APIs
Content Management APIs
Data Analysis APIs
Log Service APIs
Billing APIs
Certificate APIs
Origin Protection APIs
Load Balancing APIs
Diagnostic Tool APIs
Custom Response Page APIs
API Security APIs
DNS Record APIs
Content Identifier APIs
Legacy APIs
Ownership APIs
Image and Video Processing APIs
Multi-Channel Security Gateway APIs
Version Management APIs
Data Types
Error Codes
常见问题
产品特性相关问题
DNS 记录相关问题
域名配置相关问题
站点加速相关问题
数据与日志相关问题
安全防护相关问题
源站配置相关问题
排障指南
异常状态码参考
EdgeOne 4XX/5XX 状态码排障指南
520/524状态码排障指南
521/522 状态码排障指南
工具指南
相关协议
Service Level Agreement
源站防护启用特别约定
TEO 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

使用 Keyless 无私钥证书

PDF
聚焦模式
字号
最后更新时间: 2025-10-28 17:07:28
通常,域名如果提供了 HTTPS 访问,则在服务端需要同时部署有证书的公钥、私钥才能完成握手过程中的通信加密和解密,如果您的域名需要接入 EdgeOne 进行安全加速,则也需要将证书的公钥、私钥都上传并部署在 EdgeOne 的边缘节点。如果您希望更严格地保存您的证书私钥,不希望将证书的私钥上传至腾讯云 SSL 控制台内,EdgeOne 支持 Keyless 无私钥证书部署方案,本文档将为您介绍如何使用 EdgeOne 的 Keyless 无私钥证书方案。
说明:
该功能当前正在内测中,如需使用,请 联系我们
当前 Keyless 方案仅支持使用 RSA 算法证书。

方案介绍

HTTPS 单向认证的握手流程(RSA 交换密钥算法为例)

正常情况下,如果在 EdgeOne 上配置了 HTTPS 证书,客户端使用 HTTPS 发起握手请求的流程如下(以使用 RSA 交换密钥算法为例):
1. 客户端向 EdgeOne 发起请求,将发送客户端 hello,并携带客户端生成的随机数以及支持的加密套件信息等发送给 EdgeOne;
2. EdgeOne 收到请求后,将在服务端也生成一个随机数,并将当前域名所配置的 HTTPS 证书公钥发送给客户端;
3. 客户端收到服务端随机数以及当前域名的公钥证书后,会通过 CA 证书对该证书进行验证,验证其有效并且可信任;
4. 确认证书验证通过后,客户端将根据当前加密算法生成一个预主密钥,并使用该证书内的公钥对预主密钥加密后发送给 EdgeOne;
5. EdgeOne 收到加密后的预主密钥,使用证书的私钥进行解密,获得预主密钥;
6. 此时服务端、客户端均具有完整的客户端随机数、服务端随机数以及预主密钥信息,将组合生成会话密钥,客户端和服务端均使用该会话密钥进行通信。



以上的加密通信会话的安全性在于服务端的证书私钥是安全的,如果服务端的证书私钥发生泄露,就有可能被攻击者利用导致会话信息泄露。

Keyless 无私钥证书方案中的握手流程(RSA 交换密钥算法为例)

EdgeOne 当前已支持 Keyless 无私钥证书方案,为了进一步保障证书私钥的安全性,支持用户仅部署域名证书的公钥部分到 EdgeOne 边缘节点内,用户可以自行存储私钥部分,在需要使用私钥证书时,可向存储 Keyless 服务端发起请求来使用私钥解密相关数据。与 HTTPS 单向认证握手的正常流程不一样的地方主要是在服务端收到加密后的预主密钥信息后,EdgeOne 将把该信息转发给 Keyless Server,由 Keyless Server 完成解密,并将解密后的预主密钥信息通过加密通信返回 EdgeOne。



说明:
默认情况下 EdgeOne 边缘节点和 Keyless Server 之间的可配置使用 HTTPS 安全通信加密,如果需要配置使用 HTTPS 双向认证握手来进一步保障该会话的安全性,请 联系我们

准备工作

1. 准备一台用于安装 Keyless Server 的服务器,例如:1.1.1.1
2. 准备一个需要使用 Keyless 的域名,例如:example.com,该域名已完成接入 EdgeOne,该域名对应的证书为:example.com.crtexample.com.key
3. 准备好当前所需要配置的服务端证书,包括客户端公钥、私钥,证书名称例如是:server.crtserver.key
说明:
您也可以通过自签名证书来准备测试所需的证书,可参考 使用 OpenSSL 生成自签名证书。自签名证书仅供测试使用,不受浏览器信任,不可应用于实际的业务中。

使用步骤

步骤一:在服务器上安装 Keyless Server 服务

1. 登录您准备安装 Keyless Server 的服务器内,确认已安装好以下依赖的环境,要求如下:
Go:版本应大于或等于 go1.20。
tRPC cmdline tools:用于生成PB(protobuf)协议代码。
trpc-go:版本为 v1.0.3 及以上。
Openssl:需要相关库 openssl-static(1:1.1.1k-12.tl3.1), openssl-devel(1:1.1.1k-12.tl3.1), and zlib-devel(1.2.11-25.tl3 ).
2. 确认已完成所有原来安装后,通过以下命令,从 GitHub 内下载由腾讯云 EdgeOne 提供的 Keyless server 开源项目代码到您指定的安装目录下。
git clone https://github.com/Tencent/edgeone-keyless-server.git
3. 进入 Keyless 项目的文件根目录下。
cd /edgeone-keyless-server
4. 在根目录下,创建目录 /ssl 用于存放 Keyless 公钥和私钥证书;目录 /ssl/mutual_ssl 用于存放服务器接收 Keyless 请求时,HTTPS 握手所使用的证书。
mkdir ssl
mkdir ssl/mutual_ssl
说明:
Keyless server 在收到 Keyless 无私钥加速的请求时,默认将读取存放在 /ssl 目录下的证书来获取该证书的私钥进行解密。如果您需要自定义证书的存放路径名称,需要在 /config/keyless.yaml 中修改 private_key_path 为当前存放证书的路径。
5. 上传用于当前域名的 Keyless 公钥和私钥证书,将该证书公钥、私钥文件都上传至/ssl 目录下;例如:example.com.crtexample.com.key。将用于 EdgeOne 边缘节点与 Keyless server 之间握手所需要的服务端证书,将证书的公钥和私钥文件上传至 ./ssl/mutual_ssl/ 目录下,例如:server.crtserver.key
注意:
Keyless 的公钥、私钥证书文件名必须保持一致。
如果您希望 EdgeOne 边缘节点和 Keyless server 之间使用 HTTPS 双向认证握手,请将客户端的 CA 证书也上传至 ./ssl/mutual_ssl/ 目录下,同时您还需要配置 EdgeOne 边缘节点向 Keyless server 发起访问时所携带的客户端证书,该证书配置请 联系我们 进行配置。
6. 运行以下命令,获取本机 IP 地址,例如:172.16.64.24
ifconfig -a



7. 修改配置文件。
vim trpc_go.yaml
7.1 按 i 进入插入模式,可以开始编辑该配置文件,主要修改以下五个参数,其余参数保持默认即可:
IP:使用第 6 步中获取的本机 IP 地址;
Port:对外提供的服务端口,推荐使用443,需要保障端口是可访问的;
tls_cert:第 5 步中上传的服务端证书的公钥路径,用于 EdgeOne 边缘节点与 Keyless server 之间 HTTPS 握手使用;
tls_key:第 5 步中上传的服务端证书的私钥路径,用于 EdgeOne 边缘节点与 Keyless server 之间 HTTPS 握手使用;
ca_cert:默认情况下,不需要配置。如果需要配置双向认证握手,该配置用于指定客户端证书的 CA 证书路径,即第 5 步中上传的客户端 CA 证书路径。



7.2 按 Esc 退出插入模式,然后输入 :wq 保存并退出。
8. 完成基础配置后,编译项目。
go build -o keyless main.go && chmod a+x keyless
9. 运行以下命令,启用 Keyless server 服务。
sudo nohup /edgeone-keyless-server/keyless >/dev/null 2>&1 &
10. 运行以下命令查看当前服务是否已启用成功,如果显示 launch success 即已经启用成功。
tail -f log/keyless.log


步骤二:在腾讯云 SSL 证书控制台内上传证书

将当前域名需要配置的证书(仅包含公钥)上传到腾讯云 SSL 控制台内,步骤请参见 上传证书至腾讯云 SSL 控制台
说明:
如果需要上传仅包含公钥的服务端证书,请 联系我们 为您开启腾讯云 SSL 产品白名单。

步骤三:在 EdgeOne 控制台内配置域名使用 Keyless 无私钥证书

1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,进入服务总览,单击网站安全加速内需配置的站点。
2. 在站点详情页面,单击域名服务 > 域名管理。
3. 找到需要配置的域名,在 HTTPS 配置一列,单击编辑,找到边缘 HTTPS 配置卡片点击配置,选择配置方式为使用 Keyless 无私钥证书
4. 配置 Keyless 服务端的地址,该地址即为 步骤一 您所准备的服务器地址与端口号。



5. 选择需要使用的 HTTPS 证书,该证书即为您在 步骤二 内所上传的证书。
6. 单击确定,等待配置部署下发,即可生效。

步骤四:验证访问

使用 curl 进行访问验证,查看 HTTPS 握手是否可访问成功。您可以参照以下 curl 指令:
curl https://example.com/ -v -k

更新 Keyless 证书

1. 登录 Keyless server 服务器,进入当前已安装的 Keyless 目录,将需要更新的公钥、私钥证书,上传至./ssl/ 目录下。
注意:
Keyless 的公钥、私钥证书文件名必须保持一致,更新证书时,请勿直接覆盖旧的域名证书,建议另起一个文件名进行存放。例如:原证书名称是 example.com.crtexample.com.key,则新证书名字可以使用 example.com.new.crtexample.com.new.key
2. 上传完成后,执行以下命令重新加载 Keyless 证书。
curl http://127.0.0.1/KeylessReloadCerts -v
如果 curl 请求如下所示,响应 200,即加载成功:

3. 将当前需要更新的证书(仅包含公钥)上传到腾讯云 SSL 控制台内,步骤请参见 上传证书至腾讯云 SSL 控制台
4. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,进入服务总览,单击网站安全加速内需配置的站点。
5. 在站点详情页面,单击域名服务 > 域名管理。
6. 找到需要配置的域名,在 HTTPS 配置一列,单击编辑找到边缘 HTTPS 配置卡片点击配置,选择配置方式为使用 Keyless 无私钥证书
7. 将 HTTPS 证书 修改为您新上传的证书,然后单击确定,等待配置部署下发,即可生效。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈