Repository navigation
Jync v1.14.0 · 应用内 HTTPS 与配置包迁移
Jync v1.14.0
新增
- 应用内 HTTPS:「系统配置」可直接上传 PKCS#12 / JKS 密钥库或 PEM 证书链与私钥,由 Jync 自己提供 HTTPS,不必再改 nginx 或环境变量。
- 证书与加密后的密钥库口令存放在
./data/tls,不进元数据库、不进配置包;私钥与叶子证书用签名探测校验,加密私钥与 SEC1 格式明确拒绝。 - HTTPS 连接器在启动时创建,保存后需重启;页面区分「已保存 / 已生效 / 等待重启 / 移除待重启」,到期前 30 天提示。端口冲突或证书损坏时可用
JYN_TLS_ENABLED=false救回实例。 - 可选 HTTP→HTTPS 307 重定向,只信任严格校验的 Host 或
app.tls.redirect-host,不采信X-Forwarded-Host;非法 Host 返回 400。 - PEM 解析为单次前向扫描,畸形大文件不会卡住上传线程;续期重传表单用已保存的端口与重定向选择预填。
- 证书与加密后的密钥库口令存放在
- 强制 HTTPS 页面可配:管理员可在系统配置页开关,无需改配置文件重启。取值优先级为「配置文件 > 数据库 > 默认」,5 秒 TTL 快照,其他节点在一个 TTL 内收敛;回环地址与未鉴权的
GET /login始终可达。拒绝文案区分未配置证书、TLS 已禁用、证书过期与等待重启。 - 配置包导出 / 导入:把连接、项目、任务等配置整体搬到另一个元数据库。
- 单文件
.jync:JYNC 信封 + AES-256-GCM(AAD 绑定头部)+ PBKDF2-HMAC-SHA256 21 万次口令加密;单包 ≤ 20 MB,解压后 ≤ 40 MB。 - 导出 13 张配置表,可选「包含同步进度与游标」;默认只迁移配置。包内
meta携带源端密钥,导入时先解密全部enc:值,再用目标部署密钥重新加密,解不开即中止。 - 只接受空配置库,所有 id 丢弃并重映射;用户按 username 合并,导入后必须仍有 ADMIN。导入恢复
baselineDone;重新编号的 PG / 崖山 CDC 项目按采集策略丢弃旧位点并自动重新全量,避免带着旧位置续接后被 park 成 ERROR。
- 单文件
- 元数据库连接测试器:填入候选 JDBC 地址与驱动类,真的连一次并返回产品 / 版本与一段 POSIX 安全引用的
SPRING_DATASOURCE_*环境变量块;四种 JDBC 方案白名单,只测试、不持久化。 - 列清洗新增 6 种规则:手机号、身份证、银行卡、姓名、邮箱的格式保留掩码,以及带可选盐的 SHA-256 哈希,规则总数达到 13 种。掩码按 code point 保留首字符,不切断 emoji 代理对;哈希列在内容校验时自动跳过。
- 系统管理导航组:「系统配置」与「系统信息」拆为独立入口,新增
SYSTEM_SETTING_SAVE/CONFIG_EXPORT/CONFIG_IMPORT/SYSTEM_DB_TEST审计事件,URL 脱敏,口令与密文不进日志、审计或页面消息。 - 安全数据边界文档:新增 security-data-boundary.md,列出本地落点、出网点与关闭方式、离线部署清单、加密存储现状与国密能力边界。
- 元数据库迁移集成测试:同一套用例在 MySQL 8.0 与 PostgreSQL 16 上各跑一遍,覆盖导出(含状态)→ 清空 → 目标密钥轮换 → 导入。
修复与优化
- CDC 基线不再强制创建二级索引:结构与数据仍强制开启,但索引开关在 CDC 模式下保持可见、按保存值执行,手工建表或自带索引的场景不再被覆盖。
- 文档同步:部署容器环境变量与卷、配置包的迁移边界、配置文档中两种 HTTPS 部署方式与故障恢复表。
已知边界
- 配置包不迁移变更日志、审计、性能采样、ETL / 迁移运行历史、
sync_task租约行、chunk_checkpoint与 TLS 证书;无主键表在全量装载中迁移可能产生重复行,建议装载结束后再迁移。 - 配置包中的 PG 复制槽名为「
sync.cdc.pg.slot-prefix+ project id」,导入会重新分配 id。若新 id 恰好等于旧实例另一个项目的 id,新任务首次启动会接到那个仍在运行的旧槽上。迁移前请先停掉旧实例的 CDC,或修改slot-prefix使名称不可能重叠,再手工清理旧槽;YStream 服务名另带随机后缀,冲突风险低,但旧服务仍需手工删除。 - 应用内 TLS 保存后需重启生效,不支持运行时热切换,也不内置 ACME;免费 DV 证书续期后需重新上传并重启。
data/tls是实例本地目录,多实例需共享JYN_TLS_DIRECTORY或分别上传。证书可以是 DV / OV / EV,但必须由公开信任的 CA 签发并携带中间证书链;私钥须为未加密 PKCS#8 / PKCS#1,或使用 PKCS#12 密钥库。
数据库连接、同步项目、ETL 与专属迁移的存量配置不需要改动;升级只需替换 jync.jar 并重启。使用应用内 HTTPS 时 ./data 下会新增 data/tls,升级前请照常备份 ./data 与 application.yml。