内容:

SSL for JDBC Connections

  • 版本 :2022.1 及更高版本

适用于: Tableau Desktop

如果将常规(单向)SSL 与基于 JDBC 的连接器一起使用,并且您有自签名证书或由非公共证书颁发机构 (CA) 签名的证书,则需要为证书配置信任。

借助 Tableau,您可以使用以下方法之一为 JDBC 连接配置单向 SSL 信任:

嵌入证书

某些连接器支持在工作簿或数据源中嵌入证书。如果该功能可用,则可以使用 Tableau Desktop 嵌入 CA 证书。

在系统信任存储中安装证书

如果嵌入不可用,则需要配置 Java 运行时来信任您的证书。此外,这样做可能比将证书嵌入到每个工作簿中要容易得多。

对于 Windows:

您可以在 Windows 根 CA 信任存储中安装 CA 或自签名证书。Java 运行时在系统根信任存储中查找受信任的 CA。它不会在中间证书存储中查找。

注意:如果已安装了根 CA,但在进行连接时仍然遇到问题,则可能是由于缺少中间证书造成的。虽然 TLS 标准要求服务器发送其链中的所有证书(根证书除外),但并非所有服务器都符合要求。如果服务器不发送中间证书,您可以修复服务器以正确转发中间证书或在根信任存储中安装中间证书。或者,您可以选择在数据源中嵌入证书,或者配置具有驱动程序属性的信任存储。

  1. 在 Windows 中,搜索“证书”。

  2. 选择“管理计算机证书”。

  3. 在“操作”菜单中,选择“所有任务”,然后根据 Windows 版本执行以下操作之一:

    • 选择“导入”,然后选择“本地计算机”。

    • 选择“查找证书”。

  4. 浏览以查找证书文件。

  5. 导入到“受信任的根证书颁发机构”中。

对于 Mac:

若要在 Mac 上安装自定义证书,请按照这些步骤将证书导入“系统”钥匙串。

注意:从 Mac 上的钥匙串加载证书适用于大多数(但不是全部)驱动程序。在少数情况下,您可能需要使用 PROPERTIES 文件来配置信任存储。有关详细信息,请参见自定义和调整连接

  1. 转到 https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac(链接在新窗口中打开)

  2. 将证书导入“系统”钥匙串(不是“系统根”)。

  3. 按如下方式启用信任:

    1. 在钥匙串应用软件中,右键单击新证书。

    2. 选择“获取信息”。

    3. 在对话框中,打开“信任”部分,然后选择“使用此证书时始终信任”。

注意:对于与 2020.2 之前的 Tableau 版本的 SAP HANA 连接,您将在 Mac 上将证书添加到 JRE。有关详细信息,请参见 SAP HANA 连接器帮助主题中的“在 Mac 上安装受信任的 SSL 证书”部分。

对于 Linux:

许多 Linux 发行版将从系统证书生成 Java 格式的信任存储。您可能需要通过程序包管理器安装 Java 才能创建此文件。

这允许 JRE 使用与操作系统相同的证书。

注意:Tableau Server 会在标准位置中查找此文件:
/etc/ssl/certs/java/cacerts
/etc/pki/java/cacerts

若要配置其他位置,请运行:

tsm configuration set -k native_api.ConnectivityTrustStore -v  --force-keys

此文件应:

  • 包含所有受信任的 CA 和自签名证书。

  • 仅包含公钥。

  • 采用 JKS 格式。

  • 可由 Tableau 无特权用户(“运行身份用户”)读取。

  • 使用默认的 JKS 密码“changeit”

若要安装自定义 CA 或自签名证书,请参见适用于您的发行版的文档。运行相应的命令以生成密钥存储。例如:

update-ca-certificates

使用自定义驱动程序属性

您可以使用属性文件自定义 JDBC 连接选项,包括信任存储的位置。这是一个纯文本文件,其中包含每个连接参数的键值对。有关特定属性设置的详细信息,请参见驱动程序的文档。

例如,此属性文件中的行用于配置信任设置:

javax.net.ssl.trustStore=C:\\My_Folder\\truststore.jks
javax.net.ssl.trustStoreType=JKS
javax.net.ssl.trustStorePassword=password

创建文件并将其保存到正确的位置时,文件中的属性将应用于到同一数据源类型的所有 JDBC 连接。

如果使用通用的“其他数据库 (JDBC)”连接器,则可以直接在连接对话框中指定属性文件。

有关详细信息,请参见自定义和调整连接(链接在新窗口中打开)