跳到主要内容

迁移到 v0.4

v0.4.0 是一个不向后兼容的大版本。本文档将帮助你将已有的 Certimate 服务升级到 v0.4 版本。

温馨提示,篇幅过长,你可以利用目录导航快速跳转到要阅读的内容。


有哪些变化?

以下是一些主要区别:

新的工作流编辑器

借助于 FlowGram 的强大能力,我们重新设计了工作流编辑器,除视觉样式上的变化外,还包含了若干新的功能:

  • 画布自由拖拽及滚轮缩放;
  • 横纵向布局切换;
  • 小地图导航;
  • 移动节点,现在你可以拖拽并调换节点的顺序;
  • 导入、导出工作流编排为 YAML 或 JSON 格式。

支持 HTTP-01 质询

申请证书时可以选择通过 HTTP-01 质询(基于文件)完成域名所属权的验证。

但要注意,HTTP-01 质询无法签发泛域名证书。

支持从本地或 URL 中上传证书

在之前的版本中,我们允许用户上传自有证书到 Certimate、并通过 Certimate 部署证书到其他平台。但这仍需要用户在前端表单中手动选择证书文件,只能算作一种“半自动化”。

现在,你可以选择填写一个本地路径或 URL 地址,Certimate 会从该位置读取证书文件。这样一来,你可以通过其他方式签发证书(例如购买商业证书,或使用其他 ACME 工具),但无需重新编排 Certimate 工作流,以实现完全地自动化部署工作。

支持通知内容模板语法

你可以在通知主题或正文中插入变量(例如:工作流名称、证书域名、证书到期时间等),以复用通知模板。

更多提供商支持

新增了以下 DNS 提供商:

  • Vultr。

新增了以下部署提供商:

  • 华为云 OBS 对象存储服务。

新增了以下证书颁发机构:

  • Actalis SSL;
  • GlobalSign Atlas;
  • Sectigo;
  • 同时,可在全局设置中配置自定义 ACME 证书颁发机构。

改进 UI

新的用户界面,更好地适配超宽屏和移动端,并改进了许多交互体验。

一些破坏性变化

请阅读下方章节了解更多细节。


准备升级

阅读升级指南以了解更多细节。

升级并重启 Certimate 后,Certimate 会自动运行一个迁移程序。

从 v0.3 之前的版本升级

不支持,请先升级到 v0.3。

从 v0.3 升级

警告

低于 v0.3.19 版本的用户,需要先升级到 v0.3.19 或更高版本后,再升级到 v0.4.0。

你的以下数据将完全得到保留:

  • 系统设置数据(除通知渠道参数外)。
  • 授权凭据数据。
  • 工作流运行历史及日志。

你的以下数据将被转换以适配新版本:

  • ACME 账号数据。
  • 工作流编排数据。
  • SSL 证书数据。

你的以下数据将被废弃:

  • 系统设置中的通知渠道参数。

从 v0.4.0-alpha 升级

完全兼容,你的全部数据将完全得到保留。


破坏性变化

全局推送通知渠道已废弃

在 v0.4.0 中,全局推送通知渠道相关功能正式废弃。现在,所有的通知渠道已被纳入到授权凭据中统一管理。

全局证书过期告警已废弃

在之前的版本中,我们提供了一种每日发送证书临近过期告警通知的功能。其设计目的是为了让用户在证书过期前加以关注,并采取某些行动,以免对生产造成影响。

但因为它是基于扫描 Certimate 内已有的证书实现的,并不真正体现用户的业务系统中实际所使用的证书。而且因为证书是自动化续期的,也就是说,无论如何证书都是会过期的,但它并不一定是有害的,滥用告警提醒反而可能会降低用户的敏感度。

在 v0.4.0 中,全局证书过期告警相关功能正式废弃。现在,你可以选择在工作流中配置监控你的真实网站证书。

在未来的版本迭代中,我们计划在现有的工作流基础之上引入单独的证书监控模块,使得用户可以更好地关注自身业务系统的证书情况。

工作流执行结果分支

在之前的版本中,工作流中有一种“执行结果分支”类型的节点,它能在某一节点执行失败后进行某些操作(例如发送邮件通知)。但存在两个缺陷:

  • 只能针对前一个节点判断执行成功或失败。如果工作流中包含多个业务节点(例如:申请证书 -> 部署到服务 A -> 部署到服务 B)都需要此类判断时,则需要复杂的编排。
  • 进入失败分支后会隐式地中断工作流,无法满足允许忽略某些错误的场景。

在 v0.4.0 中,我们借鉴了某些编程语言中 try-catch-finally 这样的语法结构来重构了该功能。现在,你可以将原本复杂的编排转换为简单的编排:

需要注意的是,迁移程序无法自动合并这些分支,我们建议你在升级完成后手动调整已有的工作流,将原来的多个串行的执行结果分支节点合并为一个。

证书部署时的泛域名匹配

在之前的版本中,由于各贡献者实现的部署提供商没有统一规范,在某些支持泛解析的云服务(如 CDN)中,如果在部署节点中输入一个开头为 * 的域名(即泛域名),会产生三种不同的行为逻辑:

  • 精确匹配,只部署到泛解析站点本身。即 *.example.com 只会匹配 *.example.com 这一个站点。
  • 通配符匹配,部署到所有匹配该泛域名的站点。即 *.example.com 会匹配 www.example.comimage.example.com 之类的多个站点。
  • 根据证书自动匹配,部署到所有匹配该证书的站点。证书可能是一张多域名证书,例如同时包含 www.foo.comwww.bar.comwww.baz.com,即便用户只输入了 *.foo.com,也会同时匹配到 www.foo.comwww.bar.comwww.baz.com 之类的多个站点。

这使得用户在使用过程中会产生歧义。

为了避免不必要的困扰,在 v0.4.0 中,我们统一了泛域名默认的行为逻辑为“精确匹配”。以下部署提供商会受到影响:

  • 腾讯云 - 内容分发网络 CDN。原行为逻辑是“根据证书自动匹配”。
  • 腾讯云 - 全站加速网络 ECDN。原行为逻辑为是“根据证书自动匹配”。
  • 火山引擎 - 内容分发网络 CDN。原行为逻辑是“通配符匹配”。
  • 火山引擎 - 视频直播 Live。原行为逻辑是“通配符匹配”。

与此同时,我们为上述这些部署提供商额外提供了“域名匹配模式”这一配置项,你仍可以在部署节点中手动修改它的值为其他模式,来保持与之前版本相同的行为逻辑。

在未来的版本迭代中,我们计划逐步为每个支持泛解析的部署提供商都引入“域名匹配模式”这一配置项。

证书部署到腾讯云 CLB 负载均衡器

在之前的版本中,部署提供商 腾讯云 - 负载均衡 CLB 有一个配置项“证书部署方式”。

在 v0.4.0 中,我们废弃了“通过 SSL 服务部署到云资源实例”这一可选项,以精简冗余逻辑。现在,你可以选择其他部署方式,或者切换到通过 SSL 证书服务创建部署任务这一部署提供商。