Skip to main content
本页不适用于 ClickHouse Cloud。本文所述流程在 ClickHouse Cloud 服务中已实现自动化。
本指南介绍如何配置 ClickHouse 以使用 ACME 协议 (由 RFC8555 定义) 。 借助 ACME 支持,ClickHouse 可以自动从 Let’s EncryptZeroSSL 等提供商获取并续订证书。 TLS 加密可保护客户端与 ClickHouse 服务器之间的传输数据,防止敏感查询及其结果被窃听。

概述

ACME 协议定义了通过 Let’s EncryptZeroSSL 等服务自动更新证书的流程。简而言之,作为证书申请方,ClickHouse 需要通过预定义的质询类型来验证域名所有权,才能获得证书。 要启用 ACME,请配置 HTTP 和 HTTPS 端口以及 acme 块:
HTTP 端口在域名验证期间用于处理 ACME HTTP-01 质询请求 (有关质询类型的更多信息,请参见此处) 。验证完成并签发证书后,HTTPS 端口会使用获取到的证书提供加密流量。 HTTP 端口在服务器本身上不必一定是 80;可以使用 nftables 或类似工具重新映射。请查阅你的 ACME 提供商文档,确认 HTTP-01 质询接受哪些端口。 acme 块中,我们定义了用于创建账户的 email,并接受 ACME 服务的服务条款。 之后,唯一还需要的就是一个域名列表。

当前限制

  • 仅支持 HTTP-01 质询类型。
  • 仅支持 RSA 2048 密钥。
  • 暂不处理速率限制。

配置参数

acme 部分中可用的配置选项: 请注意,配置默认使用 Let’s Encrypt 的生产目录。为避免因配置错误而触发请求配额限制,建议先使用暂存目录测试证书签发流程。

管理

初始部署

在为包含多个副本的集群启用 ACME 客户端时,首次签发证书期间需要格外谨慎。 第一个在启用 ACME 后启动的副本会立即尝试创建 ACME 订单并执行 HTTP-01 质询验证。如果当时只有部分副本在对外提供服务,质询很可能会失败,因为其他副本无法响应验证请求。 如果条件允许,建议暂时将流量路由到单个副本 (例如通过调整 DNS 记录) ,让其先完成首次证书签发。证书成功签发并存储到 Keeper 后,即可在其余副本上启用 ACME。它们会自动复用现有证书,并参与后续续订。 如果无法将流量路由到单个副本,另一种方法是在启用 ACME 客户端之前,先将现有证书和私钥手动上传到 Keeper。这样可以跳过初始验证步骤,并让所有副本在启动时就已具备有效证书。 首次证书签发或导入完成后,证书续订无需特殊处理,因为所有副本都已在运行 ACME 客户端,并通过 Keeper 共享状态。

Keeper 数据结构

从其他 ACME 客户端迁移

可以将当前的 TLS 证书和私钥迁移到 Keeper,以简化迁移过程。 目前,服务端仅支持 RSA 2048 私钥。 假设我们从 certbot 迁移,并使用 /etc/letsencrypt/live 目录,则可以使用以下这组命令:
最后修改于 2026年7月3日