在独立网关上配置 TLS

Tableau Server 2022.1.2 及更高版本支持为独立网关使用 TLS。

Tableau Server 和 Tableau Server 独立网关都使用使用 OpenSSL 构建的 SSL 模块 (mod_ssl) 来实现传输层安全 (TLS) 功能。

由于其复杂性和安全敏感性,我们建议由熟悉 Apache httpd 上的 TLS 的 IT 专业人员来规划和实施 TLS 配置。

在许多情况下,我们在事物名称中使用“SSL”是为了与现有的 TSM 或 Apache httpd 配置属性或概念兼容。“SSL”实际上是指现在被认为不安全和过时的协议版本。但是,旧名称仍然存在,并且通常按照惯例与 TLS 互换使用。Tableau Server 和独立网关不支持 SSL 时代的协议。

TLS 配置示例

有关端到端 TLS 配置示例,请参见企业部署指南中的配置从负载平衡器到 Tableau Server 的 SSL/TLS(链接在新窗口中打开)。本主题显示了在 AWS 部署中的 Linux 版 Tableau Server 上配置 TLS 服务器的分步示例。虽然该示例描述了适用于 Linux 的过程,但是配置示例对于 Windows 版 Tableau Server 也很有用。

TLSL 配置概述

您可以在 Internet 到 Tableau Server 路径的以下任何部分上为 HTTPS 配置 TLS:

  • 从外部网络(Internet 或前端负载平衡器)到独立网关
  • 从独立网关到 Tableau Server
  • 用于从 Tableau Server 到独立网关的整理 (HK) 流程

本主题提供了用于配置每个跃点的过程。

您将需要对独立网关计算机和 Tableau Server 群集进行配置更改。

证书要求和注意事项

独立网关的证书要求与为 Tableau Server“外部 SSL”指定的证书要求相同。请参见SSL 证书要求

其他注意事项:

  • 为了简化证书管理和部署,并且作为安全最佳实践,我们建议使用由主要受信任的第三方证书颁发机构 (CA) 生成的证书。或者,您可以为 TLS 生成自签名证书或使用 PKI 中的证书。在这种情况下,请注意信任 CA 证书和验证证书的配置选项。
  • 如果您的实施需要使用证书链文件,请参见知识库文章使用具有证书链的证书时在独立网关上配置 TLS(链接在新窗口中打开)
  • 如果您正在运行独立网关的多个实例,则必须将证书分发到同一位置(文件路径)中的每台计算机。
  • 如果您正在运行具有多个节点的 Tableau Server 部署,则您使用 TSM 命令上载的证书会自动分布在这些节点上。在初始节点上运行所有 TSM 命令。

全局 TLS 配置

以下配置是全局的。下面的配置选项是指必须使用 tsm configuration set 命令设置的配置键。命令必须包括 --force-keys 选项。

您不太可能需要更改这些值。

请注意,每对密钥共享相同的命名格式,其中字符串 tsig 设置独立网关的值。包含字符串的键 tsig 设置 Tableau Server 群集上网关进程的值。

如果您没有为 tsig 键设置值,则将使用默认的 Tableau Server 网关值。

gateway.tsig.httpd.socachegateway.httpd.socache

默认值:shmcb

替代值:dbm

进程间 SSL 会话缓存的存储类型。有关 shmcb 和 dbm 存储类型的详细信息,请参见 Apache 网站上的 SSLSessionCache 指令(链接在新窗口中打开)

gateway.tsig.httpd.shmcb.sizegateway.httpd.shmcb.size

默认值:2048000

使用 shmcb 存储类型时用于循环缓冲区的内存量(以字节为单位)。

注意:另一个全局键是 gateway.tsig.ssl.key.passphrase.dialog。如果适用,只有一个用于 gateway.tsig.ssl.key.passphrase.dialog 的配置。根据设计,它会收集配置中所有加密私钥文件的密码短语。本主题后面的适用部分介绍了此键的使用。

外部 TLS 到独立网关

配置外部连接以终止独立网关服务器上的 TLS 的过程在概念上类似于为 Tableau Server 群集配置“外部 SSL”的方式。但机制不同。TSM 不会自动将证书和密钥材料分发给独立网关节点。此外,独立网关不会自动提供在启动时提供可选 TLS 密钥密码短语的方法。

以下步骤描述了如何配置从外部源到独立网关计算机的 TLS。

步骤 1:将文件分发到独立网关计算机

  1. 将证书和相关文件放置一个位置,并提供允许独立网关服务 (tsig-httpd) 读取它们的权限。我们建议限制对密钥文件的访问,以便只有独立网关服务可以读取它们。
  2. 将所有文件、证书和密钥放在所有独立网关计算机上完全相同的位置。将文件放在 TSIG_INSTALL 和 TSIG_DATA 路径之外,以便在重新安装或升级独立网关时不会将它们移除。

步骤 2:更新独立网关计算机上的环境变量

在每台独立网关计算机上,将 TSIG_PORTTSIG_PROTOCOL 环境变量分别设置为 443(按照惯例,但支持任何未使用的 TCP 端口号)和 https

通过在 environment.bash 中更新 TSIG_PORTTSIG_PROTOCOL 环境变量来更改这些值。

默认情况下,environment.bash 位于 /etc/opt/tableau/tableau_tsig

更新文件后,您必须重新启动 tsig-httpd:

sudo su - tableau-tsig
systemctl --user restart tsig-httpd
exit

步骤 3:在 Tableau Server 上设置 TLS 配置属性

下表中的大多数 TSM 配置键都派生自 Apache httpd 指令。因此,这些 TSM 配置键的配置值直接映射到相应 Apache 指令的有效值。下表包含指向相应指令的链接。

在某些情况下。如果未设置特定键,则配置将使用后备配置。这些在下表中列出。

下表中的配置选项是指您必须使用 tsm configuration set 命令设置的配置键。所有命令必须包括 --force-keys 选项。例如:

tsm configuration set -k gateway.tsig.ssl.enabled -v true --force-keys

设置配置键之后,您必须运行 tsm pending-changes apply

配置属性描述对应的 Apache 指令
gateway.tsig.ssl.enabled

必需。

启用 TLS。必须设置为 true

不可用
gateway.tsig.ssl.cert.file_name

必需。

独立网关证书文件的路径+文件名。例如,/etc/ssl/certs/tsig-ssl.crt

SSLCertificateFile(链接在新窗口中打开)
gateway.tsig.ssl.key.file_name

必需。

独立网关证书密钥文件的路径+文件名。例如,/etc/ssl/keys/tsig-ssl.key

SSLCertificateKeyFile(链接在新窗口中打开)
gateway.tsig.ssl.key.passphrase.dialog如果您的密钥需要密码短语,那么您必须使用 Apache httpd SSLPassPhraseDialog 指令预期的正确字符串配置此密钥。不要为此键输入文字密码短语。有关如何执行配置此键的信息,请参阅 Apache 文档。
此配置对于独立网关是全局的。
SSLPassPhraseDialog(链接在新窗口中打开)

gateway.tsig.ssl.protocols

后备:ssl.protocols

指定受支持的 SSL/TLS 版本。有关默认配置的详细信息,请参见安全强化检查表SSLProtocols(链接在新窗口中打开)

gateway.tsig.ssl.ciphersuite

后备:ssl.ciphersuite

指定允许客户端协商 SSL 连接的密码。SSLCipherSuite(链接在新窗口中打开)
gateway.tsig.ssl.client_certificate_login.required

将此值设置为 true 以便在此连接上启用相互 TLS。

您还必须按下面指定的方式设置 gateway.tsig.ssl.cacert.file属性。

不可用
gateway.tsig.ssl.cacert.file指定包含用于客户端身份验证过程的级联 CA 证书的文件。SSLCACertificateFile(链接在新窗口中打开)
gateway.tsig.ssl.revocation.file指定包含连接到独立网关的客户端的级联 CA 吊销列表的文件。SSLCARevocationFile(链接在新窗口中打开)
gateway.tsig.ssl.redirect

为 TLS 配置独立网关后,此选项会强制将来自端口 80(默认值)的客户端请求重定向到 TLS。

默认值:true

不可用
gateway.tsig.ssl.redirect_from_port

gateway.tsig.ssl.redirect 设置为 true 时,此选项允许您指定重定向流量的端口。

默认值:80

不可用

独立网关到 Tableau Server

本部分介绍如何加密独立网关和 Tableau Server 之间的连接。

步骤 1:在 Tableau Server 上配置和启用 TLS

请参见针对与来往 Tableau Server 的外部 HTTP 流量配置 SSL

请注意,“SSL”实际上是 TLS 实现,“外部”是指到 Tableau Server 的外部连接。在这种情况下,独立网关是“外部”连接。

我们建议在配置独立网关之前启用并验证客户端是否可以通过 TLS 直接连接到 Tableau Server。

步骤 2:在独立网关计算机上分发证书文件

如果满足以下任一条件,您将需要在独立网关计算机上分发证书文件:

  • 您正在为 Tableau Server 部署上的 TLS 证书使用自签名证书或 PKI 证书。
  • 您正在从独立网关到 Tableau Server 的连接上启用相互 TLS。

与独立网关计算机上的所有 TLS 相关文件一样,您必须将文件放在每台计算机上的相同路径中。TLS 共享文件的所有文件名也必须相同。

步骤 3:在 Tableau Server 上设置 TLS 配置属性

下表中的大多数 TSM 配置键都派生自 Apache httpd 指令。因此,这些 TSM 配置键的配置值直接映射到相应 Apache 指令的有效值。下表包含指向相应指令的链接。

在某些情况下。如果未设置特定键,则配置将使用后备配置。这些在下表中列出。

下表中的配置选项是指您必须使用 tsm configuration set 命令设置的配置键。所有命令必须包括 --force-keys 选项。例如:

tsm configuration set -k gateway.tsig.ssl.enabled -v true --force-keys

设置配置键之后,您必须运行 tsm pending-changes apply

配置属性描述对应的 Apache 指令

gateway.tsig.ssl.proxy.cacertificatefile

如果您的组织为 Tableau Server 使用自签名或 PKI 生成的 TLS 证书,则您必须指定根 CA 证书文件的路径。此根 CA 证书文件必须存储在独立网关计算机上。SSLProxyCACertificateFile (链接在新窗口中打开)

gateway.tsig.ssl.proxy.protocols

后备:ssl.protocols

指定受支持的 SSL/TLS 版本。有关默认配置的详细信息,请参见安全强化检查表SSLProtocols(链接在新窗口中打开)

gateway.tsig.ssl.proxy.ciphersuite

后备:ssl.ciphersuite

指定允许客户端协商 SSL 连接的密码。SSLCipherSuite(链接在新窗口中打开)
gateway.tsig.ssl.proxy.machinecertificatefile适用于相互 TLS。指定包含级联证书密钥对的文件,用于向 Tableau Server 进行独立网关的身份验证。SSLProxyMachineCertificateFile(链接在新窗口中打开)
gateway.tsig.ssl.proxy.verify

指定独立网关是否应验证 Tableau Server 提供的证书。

默认为 require

SSLProxyVerify(链接在新窗口中打开)
gateway.tsig.ssl.proxy.checkpeername

指定独立网关是否检查 Tableau Server 证书以验证使用者名称是否与服务器名称匹配。

默认为 off

SSLProxyCheckPeerName(链接在新窗口中打开)
gateway.tsig.ssl.proxy.checkpeerexpire

指定独立网关是否检查 Tableau Server 证书以验证过期:

默认为 off

SSLProxyCheckPeerExpire(链接在新窗口中打开)

步骤 4:将根 CA 证书上载到 Tableau Server

如果您在独立网关计算机上使用的 TLS 证书是自签名或 PKI 生成的证书,那么您必须执行此附加步骤。如果您在独立网关计算机上使用的 TLS 证书是来自受信任的第三方证书颁发机构的证书,则可以跳过此步骤。

将用于独立网关计算机的根 CA 证书复制到 Tableau Sever 的初始节点,然后运行以下命令:

tsm security custom-cert add -c <root-certificate-file-name>.pem
tsm pending-changes apply

整理 Tableau Server 和独立网关之间的连接

整理 (HK) 进程维护后端 Tableau Server 部署和独立网关之间的配置状态。

安装独立网关后,默认配置提供未加密的 HTTP 连接。独立网关侦听源自 Tableau Server 群集的整理处理请求(如您在安装期间定义的那样)。

如果您正在运行独立网关的多个实例,则所有服务器都必须接受带有 TLS 的整理请求或所有不带 TLS 的整理请求。本部分描述如何为 TLS 配置 HK 连接。此过程需要重新启动 Tableau Server,并且会导致停机。

与上述之前的 TLS 方案一样,HK 连接的许多配置更改都是在 Tableau Server 群集管理的配置属性上设置的。但是,HK TLS 配置需要在独立网关上执行额外的步骤。

步骤 1:将文件分发到独立网关计算机

如果您启用了外部网络和独立网关的 TLS,您可以为 HK 连接使用相同的证书和密钥文件。

如果您使用相同的资产,那么您需要分发的唯一其他证书文件是 Tableau Server 使用的证书的根 CA 证书。如果 Tableau Server 提供的 TLS 证书由受信任的第三方 CA 生成,则您无需将根 CA 证书复制到独立网关计算机。

  1. 将证书和相关文件放置一个位置,并提供允许独立网关服务 (tsig-httpd) 读取它们的权限。我们建议限制对密钥文件的访问,以便只有独立网关服务可以读取它们。
  2. 将所有文件、证书和密钥放在所有独立网关计算机上完全相同的位置。

步骤 2:将独立网关根 CA 证书导入 Tableau Server 信任存储区

如果您在独立网关计算机上使用的 TLS 证书是自签名或 PKI 生成的证书,那么您必须执行此附加步骤。如果您在独立网关计算机上使用的 TLS 证书是来自受信任的第三方证书颁发机构的证书,则可以跳过此步骤。

您只能将一个根 CA 证书上载到 Tableau Server。因此,如果您已经上载了根 CA 证书,那么相同的根 CA 证书必须签署您将用于 HK 连接的证书。

将用于独立网关计算机的根 CA 证书复制到 Tableau Sever 的初始节点,然后运行以下命令:

tsm security custom-cert add -c <root-certificate-file-name>.pem
tsm pending-changes apply

步骤 3:更新独立网关计算机上的环境变量

在每台独立网关计算机上,将 TSIG_HK_PROTOCOL 环境变量设置为 https。您也可以通过设置 TSIG_HK_PORT 环境变量指定 HK 的替代端口(默认值为 21319)。

通过在 environment.bash 中更新 TSIG_HK_PORTTSIG_HK_PROTOCOL 环境变量来更改这些值。

默认情况下,environment.bash 位于 /etc/opt/tableau/tableau_tsig

更新文件后,您必须重新启动 tsig-httpd:

sudo su - tableau-tsig
systemctl --user restart tsig-httpd
exit

步骤 4:更新独立网关上的 httpd.conf.stub

您必须更新每个独立网关服务器上的 httpd.conf.stub文件。httpd.conf.stub 文件用于设定全局 httpd 配置的种子。

该文件位于 TSIG_DATA/config/httpd.conf.stub

在默认安装中:/var/opt/tableau/tableau_tsig/config/httpd.conf.stub

  1. 在文本编辑器中打开 httpd.conf.stub 文件。您必须使用 HK 配置详细信息更新 <VirtualHost *:${TSIG_HK_PORT}> 块。以下示例显示了所需的更改:

    <VirtualHost *:${TSIG_HK_PORT}>
     SSLEngine on
     #TLS# SSLHonorCipherOrder on
     #TLS# SSLCompression off
     SSLCertificateFile /etc/ssl/certs/tsig-ssl.crt
     SSLCertificateKeyFile /etc/ssl/private/tsig-ssl.key
     SSLCACertificateFile /etc/ssl/certs/rootTS-CACert.pem 
    #TLS# SSLCARevocationFile /path/to/file
    </VirtualHost>				

    注意:

    • 默认情况下,<VirtualHost *:${TSIG_HK_PORT}> 块中的每一行都被字符串 #TLS# 注释掉。若要“启用”块中的一行,请删除行首的 #TLS# 字符串。
    • 与所有 httpd 配置一样,每个引用的文件都需要文件的绝对路径。
    • SSLCACertificateFile 为生成 Tableau Server 提供的证书的 CA 指定根 CA 证书。仅当 Tableau Server 使用的 TLS 证书是自签名证书或由 PKI 生成的证书时,您才需要设置此项。
  2. 停止 tsig-httpd 服务。

    sudo su - tableau-tsig
    systemctl --user stop tsig-httpd
    exit

    此时您将开始接收失败的状态检查,在 TSM 中表明您的独立网关组件已降级。

  3. httpd.conf.stub 复制到 httpd.conf

    httpd.conf 文件在同一目录中。使用 httpd.conf.stub 文件覆盖 httpd.conf 文件。

    cp httpd.conf.stub httpd.conf
  4. 启动 tsig-httpd 服务。

    sudo su - tableau-tsig
    systemctl --user start tsig-httpd
    exit

    此时您将继续收到失败的状态检查,在 TSM 中表明您的独立网关组件已降级。在您完成以下步骤中所述的配置之前,这些状态检查将失败。

步骤 5:在 Tableau Server 上设置 TLS 配置属性

应用配置更改需要重新启动服务器。为避免长时间超时,我们建议在应用您在此处设置的更改之前停止服务器。在步骤 6 中,您将运行更新命令,然后重新启动 TSM。在此配置阶段停止 TSM 会缩短停机时间。

  1. 停止 TSM。运行以下命令:

    tsm stop
  2. 下表中的大多数 TSM 配置键都派生自 Apache httpd 指令。因此,这些 TSM 配置键的配置值直接映射到相应 Apache 指令的有效值。下表包含指向相应指令的链接。

    有一些 TSM 配置属性名称在前缀中包括 hk 节点:gateway.tsig.hk.xyz.abc。如果设置,这些值将用于 HK TLS 配置。如果未设置,许多配置属性将使用 gateway.tsig.xyz.abc 的后备,它们自己可能会或可能不会回退到 gateway.xyz.abc。相关时会列出后备配置属性。

    下表中的配置选项是指您必须使用 tsm configuration set 命令设置的配置键。所有命令必须包括 --force-keys 选项。例如:

    tsm configuration set -k gateway.tsig.hk.ssl.enabled -v true --force-keys
    配置属性描述对应的 Apache 指令

    gateway.tsig.hk.ssl.enabled

    (无后备)

    必需。

    启用 TLS。必须设置为 true

    不可用

    gateway.tsig.hk.ssl.cert.file_name

    后备:

    gateway.tsig.ssl.cert.file_name

    独立网关证书文件的路径+文件名。例如,/etc/ssl/certs/tsig-ssl.crt

    SSLCertificateFile(链接在新窗口中打开)

    gateway.tsig.hk.ssl.key.file_name

    后备:

    gateway.tsig.ssl.key.file_name

    独立网关证书密钥文件的路径+文件名。例如,/etc/ssl/keys/tsig-ssl.key

    SSLCertificateKeyFile(链接在新窗口中打开)

    gateway.tsig.ssl.key.passphrase.dialog

    (全局属性)

    如果您的密钥需要密码短语,那么您必须使用 Apache httpd SSLPassPhraseDialog 指令预期的正确字符串配置此密钥。
    此配置对于独立网关是全局的。
    SSLPassPhraseDialog(链接在新窗口中打开)

    gateway.tsig.hk.ssl.protocols

    后备:

    gateway.tsig.ssl.protocols

    ssl.protocols

    指定受支持的 SSL/TLS 版本。有关默认配置的详细信息,请参见安全强化检查表SSLProtocols(链接在新窗口中打开)

    gateway.tsig.hk.ssl.ciphersuite

    后备:

    gateway.tsig.ssl.ciphersuite

    ssl.ciphersuite

    指定允许客户端协商 SSL 连接的密码。SSLCipherSuite(链接在新窗口中打开)

    gateway.tsig.hk.ssl.client_certificate_login.required

    (无后备)

    将此值设置为 true 以便在此连接上启用相互 TLS。

    您还必须按下面指定的方式设置 gateway.tsig.hk.ssl.cacert.file属性。

    不可用

    gateway.tsig.hk.ssl.cacert.file

    后备:

    gateway.tsig.ssl.cacert.file

    指定包含用于客户端身份验证过程的级联 CA 证书的文件。SSLCACertificateFile(链接在新窗口中打开)

    gateway.tsig.hk.ssl.revocation.file

    后备:

    gateway.tsig.hk.ssl.revocation.file

    指定包含连接到独立网关的客户端的级联 CA 吊销列表的文件。SSLCARevocationFile(链接在新窗口中打开)
  3. 应用更改。运行以下命令:

    tsm pending-changes apply

步骤 6:更新独立网关 JSON 配置文件

最后一步是使用反映切换到 https 以及(如果适用)其他端口号的 JSON 文件更新独立网关配置。

有关编辑此文件的更多信息,请参见安装主题。请参见步骤 3:在 Tableau Server 中启用独立网关

更新了 JSON 文件后,运行以下命令:

tsm topology external-services gateway update -c tsig.json
tsm start

疑难解答

有关故障排除提示,请参见企业部署指南 (EDG)中的 Tableau Server 独立网关故障排除(链接在新窗口中打开)。EDG 提供了在 Linux 上部署 Tableau Server 的示例。故障排除步骤对于 Windows 或 Linux 版本的 Tableau Server 非常有用。

感谢您的反馈!您的反馈已成功提交。谢谢!