示例:SSL 证书 - 生成密钥和 CSR

重要信息:此示例旨在为具有 SSL 要求和配置经验的 IT 专业人员提供一般指引。本文中描述的过程只是您可用于生成所需文件的许多可用方法之一。应将此处描述的过程视为一个示例,而不是建议。


将 Tableau Server 配置为使用安全套接字层 (SSL) 加密时,将可帮助确保对服务器的访问是安全的,并且在 Tableau Server 和 Tableau Desktop 之间发送的数据受到保护。

Tableau Server 使用 Apache,其中包括了 OpenSSL(链接在新窗口中打开)。您可以使用 OpenSSL 工具包来生成密钥文件和随后可用于获取签名 SSL 证书的证书签名请求 (CSR)。

注意:从 Tableau Server 版本 2021.3.26、2021.4.21、2022.1.17、2022.3.9、2023.1.5 及更高版本开始,Tableau Server 运行 OpenSSL 3.1。

生成密钥和 CSR 的步骤

若要将 Tableau Server 配置为使用 SSL,您必须有 SSL 证书。若要获取 SSL 证书,请完成以下步骤:

  1. 设置 OpenSSL 配置环境变量(可选)。
  2. 生成密钥文件
  3. 创建证书签名请求 (CSR)
  4. 将 CSR 发送给证书颁发机构 (CA) 以获取 SSL 证书
  5. 使用密钥和证书将 Tableau Server 配置为使用 SSL

您可以在 Apache Software Foundation 网站的 SSL 常见问题页面(链接在新窗口中打开)上找到其他信息。

针对多个域名配置证书

Tableau Server 允许为多个域使用 SSL。若要设置此环境,您需要修改 OpenSSL 配置文件 openssl.conf,并在 Tableau Server 上配置使用者备用名称 (SAN) 证书。请参见下面的适用于 SAN 证书:修改 OpenSSL 配置文件

设置 OpenSSL 配置环境变量(可选)

为了避免在每次使用 openssl.exe 时都使用 -config 参数,您可以使用 OPENSSL_CONF 环境变量来确保使用正确的配置文件,并且在本文后面的过程中进行的所有配置更改均生成预期结果(例如,您必须设置环境变量来向证书中添加 SAN)。

以管理员身份打开命令提示符,并运行以下命令:

set OPENSSL_CONF=c:\Program Files\Tableau\Tableau Server\packages\apache.<version_code>\conf\openssl.cnf

注意:在设置 Open SSL 配置环境变量时,请不要将文件路径括在引号内。

生成密钥

生成一个将用于生成证书签名请求的密钥文件。

  1. 以管理员身份打开命令提示符,并导航到 Tableau Server 的 Apache 目录。例如,运行以下命令:

    cd C:\Program Files\Tableau\Tableau Server\packages\apache.<version_code>\bin

  2. 运行以下命令以创建密钥文件:

    openssl.exe genrsa -out <yourcertname>.key 4096

    注意:
    • 此命令为密钥使用 4096 位长度。您应选择至少 2048 位的位长度,因为使用较短位长度加密的通信不够安全。如果未提供值,则使用 512 位。
    • 若要使用 Tableau Server 版本 2021.3.26、2021.4.21、2022.1.17、2022.3.9、2023.1.5 及更高版本创建 PKCS#1 RSA 密钥,在运行基于 OpenSSL 3.1 的 openssl genrsa 命令时,您必须使用附加选项 -traditional。有关该选项的详细信息,请参见 https://www.openssl.org/docs/man3.1/man1/openssl-rsa.html(链接在新窗口中打开)

创建证书签名请求以发送到证书颁发机构

使用您在上面过程中创建的密钥文件来生成证书签名请求 (CSR)。您将 CSR 发送到证书颁发机构 (CA) 来获取签名的证书。

重要信息:如果要配置 SAN 证书以便为多个域使用 SSL,请首先完成下面的适用于 SAN 证书:修改 OpenSSL 配置文件中的步骤,然后返回到此处来生成 CSR。

  1. 运行以下命令以创建证书签名请求 (CSR) 文件:

    openssl.exe req -new -key yourcertname.key -out yourcertname.csr

    如果未设置 OpenSSL 配置环境变量 OPENSSL_CONF,您可能会看到以下任一消息:

    • 有关配置信息无法加载的错误消息。在这种情况下,请使用以下参数重新键入上面的命令:-config ..\conf\openssl.cnf

    • 有关找不到 /usr/local/ssl 目录的警告。此目录在 Windows 上不存在,只需忽略此消息即可。文件已成功创建。

    若要设置 OpenSSL 配置环境变量,请参见本文中的设置 OpenSSL 配置环境变量(可选)部分。

  2. 出现提示时,输入所需的信息。

    注意: 对于“公用名称”,键入 Tableau Server 名称。Tableau Server 名称是将用于访问 Tableau Server 的 URL。举例来说,如果通过在浏览器的地址栏中键入 tableau.example.com 来访问 Tableau Server,则 tableau.example.com 是公用名称。如果公用名称未解析为服务器名称,则在浏览器或 Tableau Desktop 尝试连接到 Tableau Server 时将发生错误。

将 CSR 发送到证书颁发机构以获取 SSL 证书

将 CSR 发送到商业证书颁发机构 (CA) 以申请数字证书。有关信息,请参见 Wikipedia 文章证书颁发机构(链接在新窗口中打开),以及可帮助您决定要使用的 CA 的任何相关文章。

使用密钥和证书来配置 Tableau Server

如果您同时有 CA 提供的密钥和证书,则可以将 Tableau Server 配置为使用 SSL。有关步骤,请参见配置外部 SSL

适用于 SAN 证书:修改 OpenSSL 配置文件

在 OpenSSL 的标准安装中,某些功能默认情况下未启用。若要将 SSL 用于多个域名,请在生成 CSR 之前完成这些步骤以修改 openssl.cnf 文件。

  1. 打开 Windows 资源管理器,并浏览到 Tableau Server 的 Apache conf 文件夹。

    例如:C:\Program Files\Tableau\Tableau Server\packages\apache.<version_code>\conf

  2. 在文本编辑器中打开 openssl.cnf,并查找以下行:req_extensions = v3_req

    此行可能已使用行开头的井号 (#) 被注释掉。

    如果该行被注释掉,请通过从行开头移除 #空格字符来取消注释。

  3. 移动到文件的 [ v3_req ] 部分。前面几行包含以下文本:

    # Extensions to add to a certificate request
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment

    keyUsage 行后面,插入以下行:

    subjectAltName = @alt_names

    如果要创建自签名 SAN 证书,请执行以下操作以提供用于为证书签名的证书权限:

    1. keyUsage 行中添加 cRLSignkeyCertSign,使其看起来如下所示:keyUsage = nonRepudiation, digitalSignature, keyEncipherment, cRLSign, keyCertSign

    2. keyUsage 行后面,添加以下行:subjectAltName = @alt_names

  4. [alt_names] 部分,提供要用于 SSL 的域名。

    DNS.1 = [domain1]
    DNS.2 = [domain2]
    DNS.3 = [etc]

    下图以突出显示方式显示结果,包含您将替换为域名的占位符文本。

  5. 保存并关闭该文件。

  6. 完成上面创建证书签名请求以发送到证书颁发机构部分中的步骤。

其他信息

如果您更希望使用其他版本的 OpenSSL,您可以从 Open SSL for Windows(链接在新窗口中打开) 下载该版本。

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