SSL证书过期是线上事故的常见原因。要“优雅”地更新 UCloud ULB(负载均衡器)上的SSL证书,核心在于提前规划并实现平滑替换。整个更新流程可以总结为“先添后换”,从而完全避免服务中断。下面是包含最佳实践的操作流程:
1. 监控与告警:提前发现风险
证书管理的首要原则是“早知道,早准备”。建议为 ULB 使用的 SSL 证书配置过期告警,以便在证书到期前(例如,提前 30 天)收到通知。
具体方法是在 USSL(证书管理) 服务中,将目标证书添加到过期告警列表[reference:0][reference]。
温馨提示:虽然平台会提前约30天发送站内信等通知,但强烈建议为关键业务配置独立的监控告警,实现双重保险。
2. 获取新证书:准备替换文件
在旧证书过期前,通过证书提供商完成续费或重新申请[reference:2],并获取新的 PEM 格式证书文件。你需要准备好以下文件:
私钥文件 (`.key`): 用于解密的私钥。
网站证书文件 (`.crt/.pem`): 服务器证书。
中间证书/根证书 (`.crt/.pem`): 即证书链,用于补全信任路径,为可选但强烈建议提供的文件[reference]。
3. 上传新证书:并行导入
在 ULB 控制台 中,通过以下步骤将新证书提前上传,使其与旧证书并存于系统中[reference]:
1. 登录 ULB 控制台,进入 证书管理 页面。
2. 点击 添加证书,在弹出的窗口中,输入一个清晰的 证书名称(如 `example.com_2026_new`)[reference]。
3. 在 证书内容 处,根据你的文件选择 本地导入 或 手动输入 新证书内容。
重点:此步骤不会影响现有业务,是“优雅”切换的关键前提。需要注意的是,证书是 Region 级别的资源,无法跨地域使用,若需在多个地域使用,则需在每个地域分别上传[reference:6]。
4. 替换证书:平滑切换
新证书上传完成后,可以随时在监听器中无中断地替换旧证书。操作步骤如下[reference][reference]:
1. 在 ULB 控制台找到目标负载均衡实例,点击 管理。
2. 找到对应的 HTTPS 监听器(VServer),进入其 管理页面。
3. 在基本信息区域,点击 更改设置。
4. 在 SSL 证书的下拉框中,选择你刚刚上传的 新证书,点击 确定 即可。
完成以上步骤后,新连接会立即使用新证书,已建立的长连接会继续使用旧证书直至自然断开,因此整个过程对用户无感。
5. 验证与清理
证书更换后,建议通过浏览器或 `curl` 命令访问服务,确认新证书已生效。同时,可观察一段时间业务日志,确保没有异常。
确认服务稳定后,再返回证书管理页面,将旧证书删除,以保持环境整洁。请注意,已被监听器绑定的证书无法直接删除[reference:]。
6. 自动化方案:提升运维效率
如果证书更换频繁或管理实例较多,可以考虑通过 API 或 CLI 工具实现自动化。
使用 API: UCloud 提供了 `UpdateSSLBinding` 接口[reference:10][reference]。你可以编写脚本,在获取新证书后,调用此 API 将 `OldSSLId`(旧证书 ID)替换为 `NewSSLId`(新证书 ID),实现一键式批量更新[reference]。
使用 CLI 工具: 你也可以利用 `ucloud ulb ssl` 命令行工具集,在脚本中完成证书的上传和绑定操作,方便集成到 CI/CD 流程中[reference:13][reference]。
7. 注意事项
上传的证书需去除口令保护,否则会导致证书校验失败[reference]。
请确保SSL证书格式正确,特别是包含完整的证书链[reference]。
更换证书的操作不会导致服务中断,可以放心在业务高峰期执行[reference]。
务必在旧证书过期前完成所有替换操作,以避免业务受影响[reference]。