恢复协调服务自定义证书
版本:版本 2026.3.0 中新增。
从 Tableau Server 版本 2026.3.0 开始,服务器管理员可以选择将 Tableau Server 使用的自签名证书替换为自定义证书。如果您已将 Tableau Server 配置为使用自定义证书,随后协调服务出现问题(例如由于证书过期、密钥不匹配或客户提供的证书链不再有效),您需要采取特殊操作来解决此问题,而无需全新安装 Tableau Server 并还原现有备份。有关使用自定义证书进行内部服务通信的详细信息,请参见为 Tableau Server 配置内部自定义证书。
使用每个节点上的 recover-coordination-service-cert 工具直接替换磁盘上的协调服务 (ZooKeeper) mTLS 证书和密钥材料。您必须在每个节点上应用相同的服务器和客户端证书/密钥对。
先决条件
您必须在现有 Tableau Server 节点上以
root或非特权 Tableau 运行身份用户的身份运行该工具。准备好一个服务器证书/密钥对和一个客户端证书/密钥对。支持可选的链文件以及加密密钥的密码短语。
恢复自定义证书
如果您还没有证书,请在单个节点上生成一次新的自签名对,并将相同的文件复制到每个节点。该密钥对应当与 TSM 内部生成的内容(EC P-256,自签名,CN=*)保持一致:
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 1825 -nodes -subj "/CN=*" -keyout server.key -out server.crtopenssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 1825 -nodes -subj "/CN=*" -keyout client.key -out client.crt若要生成密码短语加密的密钥,请省略
-nodes。OpenSSL 会提示输入密码短语,然后您可以使用匹配的--server-passphrase或--client-passphrase选项将其传递。在第一个节点上运行恢复工具。从托管协调服务的节点开始,以便可以重新形成法定数量:
recover-coordination-service-cert --server-cert server.crt --server-key server.key --client-cert client.crt --client-key client.key [--server-chain <file.crt>] [--client-chain <file.crt>] [--server-passphrase <passphrase>] [--client-passphrase <passphrase>]该工具会在停止任何操作之前预先验证输入:它会确认证书可解析为 X.509,所提供的任何密码短语均可解密密钥,并且所提供的任何证书链中的第一个证书是叶证书的颁发者。然后,它会停止本地服务,修补每个服务的配置和密钥存储,并重新启动控制平面(首先是 ZooKeeper,然后是管理代理,最后是其余部分)。
在每个其余节点上运行完全相同的命令,并使用相同的证书和密钥文件。首先恢复承载协调服务的节点,然后恢复任何其余节点。在每个节点上运行该工具之前,群集不会恢复——任何仍保留旧密钥存储的节点都不会重新加入。
注意:在此阶段,
tsm status显示业务服务处于错误状态。这是预期行为。该工具会修补服务,但使其保持停止状态。下一个步骤中的set命令将显示它们。在每个节点都完成后,请从控制器或初始节点运行一次以下
set命令,以将协调服务的持久配置与磁盘上的当前内容同步:tsm security coordination-service-internal-cert set --server-cert server.crt --server-key server.key --client-cert client.crt --client-key client.key [--server-chain <file.crt>] [--client-chain <file.crt>] [--server-passphrase <passphrase>] [--client-passphrase <passphrase>]恢复工具会为您打印此命令,其中已预先填充您传递的路径。它会提醒您重新添加密码短语选项,但从不回显密码短语值。该命令的相同证书短路机制会同步配置,并使整个群集(包括已停止的业务服务)恢复运行,从而清除错误状态。
故障排除:每次运行都会将结构化日志写入 ${TABLEAU_SERVER_DATA_DIR}/logs/app-recover-coordination-service-cert.log。
注意:在 Windows 上,等效的包装器 recover-coordination-service-cert.cmd 采用相同的选项并以相同的方式运行。
