TLS zh - FrankoonG/hy2scale GitHub Wiki
TLS 证书管理
HY2 SCALE 内置一个简易 PKI UI,用于管理 Hysteria 2、Web UI 和 IKEv2 MSCHAPv2 所需的证书。

证书存储
证书存放在 /data/tls/:
/data/tls/
├── default.crt # PEM 证书
├── default.key # 私钥
└── default.name # 显示名称
每张证书由三元组 {id}.crt、{id}.key、{id}.name 组成。
默认证书
首次启动时,会自动生成自签名证书:
- ID —
default - 算法 — ECDSA P-256
- 有效期 — 10 年
- CN/SAN — 节点 ID + 派生域名
Hysteria 2 QUIC 服务器开箱即用的就是这张证书,可随时替换。
操作
TLS 表格遵循 HY2 SCALE 共用的「先选中再操作」模式:单击某条证书行进入单选,再点击卡片右上角的绿色 Edit 按钮(位于 Bulk Delete 与 + New 之间)。点击卡片体之外的任意空白处 — 页面标题、卡片页头 — 即清掉单行选中(多选保持粘性)。行首的 复选框单元格 整片加宽 padding 都是点击区域,不止小输入框本身。
生成
点击 + 新建 并填写:
| 字段 | 说明 |
|---|---|
| 名称 | 显示名称 |
| 域名 | 主题备用名称(SAN,逗号分隔) |
| 天数 | 有效期(默认 3650) |
| CA | 勾选表示生成 CA 证书 |
生成的证书使用 ECDSA P-256,序列号为随机 128 位。
导入 PEM
将 PEM 文本形式的证书和私钥粘贴进来。
从路径导入
让 UI 指向磁盘上已有的文件(例如 /etc/letsencrypt/live/example.com/fullchain.pem)。文件会被 复制 到 /data/tls/ — 后续对原文件的修改不会被跟踪。
使用 CA 签发
如果列表中有 CA 证书,可使用 签名:选择签发者、输入主题 CN 和 SAN、设置有效期,新的叶证书即出现,并带有指回父证书的 CA 徽章。
导出
每张证书上的 PEM 按钮可将该证书回传给你。
删除
警告 — 不要删除正在被 Hysteria 2、HTTPS 或 IKEv2 使用的证书,先将这些服务切换到其他证书。删除正在使用的证书会使服务中断直到重新配置。
证书的使用位置
| 服务 | 角色 |
|---|---|
| Hysteria 2 | 必须 — QUIC TLS |
| Web UI HTTPS | 可选 — 为 /scale 启用 HTTPS |
| IKEv2 MSCHAPv2 | 必须 — 服务器向客户端认证 |
Hysteria 2
默认的自签名证书可用于网状中继(对等节点设置 insecure: true 或通过 ca 固定证书)。对于面向公网的 Hysteria 2 客户端,可换成由 Let's Encrypt 或自建 CA 签发的正式证书。
HTTPS Web UI
在 设置 → Web → HTTPS 中选择证书。随后 HTTP 请求会被重定向到 HTTPS。
IKEv2 MSCHAPv2 — CA 流程
MSCHAPv2 需要客户端信任的服务器证书。推荐流程:
- 生成 一张 CA 证书(勾选 CA)。
- 在 代理 → IKEv2/IPsec 中选择该 CA 作为服务器证书选择器。
- 启动时,HY2 SCALE 自动签发 一张由该 CA 签名、CN/SAN 与
local_id匹配的服务器证书。签发算法使用 RSA-2048 以获得最大的客户端兼容性(iOS / macOS / Windows / Android)。 - 导出 CA 证书 并安装到每台客户端设备。
- 客户端即可信任服务器,并使用其 HY2 SCALE 用户名 + 密码认证。
CA 证书一览
CA 证书在列表中显示 CA 徽章。叶证书会显示其签发者名称。该 PKI 可用于:
- 自动签发 IKEv2 服务器证书
- 为其他内部服务签发子证书
- 无需外部依赖就建立覆盖整个网状网络的小型 PKI