示例:SSL 证书 - 生成密钥和 CSR
重要信息:此示例旨在为具有 SSL 要求和配置经验的 IT 专业人员提供一般指引。本文中描述的过程只是您可用于生成所需文件的许多可用方法之一。应将此处描述的过程视为一个示例,而不是建议。
将 Tableau Server 配置为使用安全套接字层 (SSL) 加密时,将可帮助确保对服务器的访问是安全的,并且在 Tableau Server 和 Tableau Desktop 之间发送的数据受到保护。
期望使用 Windows 版 Tableau Server?请参阅示例:SSL 证书 - 生成密钥和 CSR(链接在新窗口中打开)。
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 证书,请完成以下步骤:
您可以在 Apache Software Foundation 网站的 SSL 常见问题页面(链接在新窗口中打开)上找到其他信息。
针对多个域名配置证书
Tableau Server 允许为多个域使用 SSL。若要设置此环境,您需要修改 OpenSSL 配置文件 openssl.conf,并在 Tableau Server 上配置使用者备用名称 (SAN) 证书。请参见下面的适用于 SAN 证书:修改 OpenSSL 配置文件。
生成密钥
生成一个将用于生成证书签名请求的密钥文件。
运行以下命令以创建密钥文件:
openssl 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。
运行以下命令以创建证书签名请求 (CSR) 文件:
openssl req -new -key yourcertname.key -out yourcertname.csr -config /opt/tableau/tableau_server/packages/apache.<version>/conf/openssl.cnf
出现提示时,输入所需的信息。
注意: 对于“公用名称”,键入 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 文件。
导航到 Tableau Server 的 Apache conf 文件夹。
例如:
/opt/tableau/tableau_server/packages/apache.<version_code>/conf
在文本编辑器中打开 openssl.cnf,并查找以下行:
req_extensions = v3_req
此行可能已使用行开头的井号 (#) 被注释掉。
如果该行被注释掉,请通过从行开头移除 # 和空格字符来取消注释。
移动到文件的 [ v3_req ] 部分。前面几行包含以下文本:
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment在 keyUsage 行后面,插入以下行:
subjectAltName = @alt_names
如果要创建自签名 SAN 证书,请执行以下操作以提供用于为证书签名的证书权限:
向 keyUsage 行中添加
cRLSign
和keyCertSign
,使其看起来如下所示:keyUsage = nonRepudiation, digitalSignature, keyEncipherment, cRLSign, keyCertSign
在 keyUsage 行后面,添加以下行:
subjectAltName = @alt_names
在 [alt_names] 部分,提供要用于 SSL 的域名。
DNS.1 = [domain1]
DNS.2 = [domain2]
DNS.3 = [etc]下图以突出显示方式显示结果,包含您将替换为域名的占位符文本。
保存并关闭该文件。
完成上面创建证书签名请求以发送到证书颁发机构部分中的步骤。