在獨立網關上設定 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 也很有用。

TLS 設定概觀

您可以在網際網路到 Tableau Server 路徑的以下任何部分上為 HTTPS 設定 TLS:

  • 從外部網絡(互聯網或前端負載均衡器)到獨立閘道
  • 從獨立閘道至 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 檔案覆寫為 httpd.conf.stub 檔案。

    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 組態檔案

最後一步是使用反映切換到的 JSON 文件更新獨立閘道設定 https 以及(如果適用)其他連接埠號碼。

有關編輯此檔案的更多資訊,請參閱安裝主題。請參閱步驟 3:在 Tableau Server 中啟用 Independent Gateway

設定所有值後,請執行以下命令:

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

疑難排解

有關疑難排解提示,請參閱企業部署指南 (EDG) 中的 Tableau Server 獨立閘道疑難排解(連結在新視窗開啟)。EDG 提供了部署 Linux 版 Tableau Server 的範例。疑難排解步驟對 Windows 或 Linux 版 Tableau Server 很有用。

感謝您的意見反應!已成功提交您的意見回饋。謝謝!