在原生模式報表伺服器上設定 TLS 連線
適用於:SQL Server 2016 (13.x) Reporting Services 和更新版本 Power BI 報表伺服器
在 SQL Server Reporting Services (SSRS) 原生模式中,您可以使用傳輸層安全性 (TLS) 通訊協定來建立與報表伺服器的加密連線。 TLS 先前稱為安全通訊端層 (SSL)。 如果您已在報表伺服器的本機憑證存放區中安裝憑證 (.cer) 檔案,您可以將該憑證繫結到 SSRS 網址保留項目,以支援透過加密通道的報表伺服器連線。
提示
如需 SSRS SharePoint 模式的詳細資訊,請參閱 Reporting Services 報表伺服器 (SharePoint 模式)。
Internet Information Services (IIS) 也使用 TLS,因此如果您在同一台電腦上執行 IIS 和 SSRS,則必須負責解決重要的互通性問題。 請查看本文稍後會提到的與 IIS 的互通性問題章節章節,以取得如何處理這些問題的指導。
必要條件
- 以原生模式設定的報表伺服器
- 安裝在您電腦上的伺服器憑證
安裝伺服器憑證
您必須在本機儲存的報表伺服器上安裝伺服器憑證。 不支援用戶端憑證。
SSRS 不提供要求、產生、下載或安裝憑證的功能。 您可以選擇針對憑證指定的屬性,以及從哪個憑證授權單位取得憑證。 您也可以決定用來要求及安裝憑證的工具和公用程式。
若要取得憑證,有幾個可能性:
Windows Server 會提供一個憑證嵌入式管理單元,可用它來從信任的憑證授權單位要求憑證。
如果您想要在本機產生憑證以供測試之用,可以執行以下 PowerShell 指令碼。
- 請以管理員身分重新執行指令碼。
- 以適合您環境的值來取代預留位置。
# Create a self-signed certificate in the local store. $newCertificate = New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName <server-name> -FriendlyName "<friendly-name>" # Convert the report server password to a secure string. $secureStringPassword = ConvertTo-SecureString "<server-password>" -AsPlainText -Force # Set up a temporary folder if one doesn't exist. $folderPath = "C:\Temp" if (-not (Test-Path -Path $folderPath)) { New-Item -Path $folderPath -ItemType Directory } # Set up a variable for the path of a certificate file. $certificateFilePath = $folderPath, "\certificate-export.pfx" -join "" # Set up a variable for the path of the certificate's store location. $certificateStoreLocation = "cert:\LocalMachine\My\", $newCertificate.Thumbprint -join "" # Export the certificate to the file. Export-PFXCertificate -Cert $certificateStoreLocation -File $certificateFilePath -Password $secureStringPassword # Import the certificate from the file to the trusted root to avoid problems with the certificate not being trusted. Import-PfxCertificate -FilePath $certificateFilePath cert:\LocalMachine\Root -Password $secureStringPassword
憑證現在可用於報表伺服器組態管理員。
若您在同一台電腦上一起執行 IIS 和 SSRS,可以使用 IIS Manager 主控台應用程式來要求和安裝憑證:
與 IIS 的互通性問題
在與 SSRS 相同的電腦上已有 IIS 的情況下,將會大幅影響與報表伺服器的 TLS 連線:
- 在您設定 TLS 連線的報表伺服器網址時,系統會在 IIS 上建立相依性。 反之,IIS 也會在 World Wide Web Publishing 服務上有相依性。 因此,當您設定 TLS 連線的報表伺服器網址時,便必須執行 World Wide Web Publishing 服務。
- 解除安裝 IIS 會暫時中斷對 TLS 繫結之報表伺服器 URL 的服務。 在解除按裝 IIS 後,您應重新啟動電腦,以清除快取中的所有 TLS 工作階段。 部分作業系統會快取最多 10 小時的 TLS 工作階段。 因此,在從 HTTP.sys 存放庫的網址保留區中移除 TLS 繫結之後,TLS 繫結之網址仍可繼續運作。 將電腦重新開機會關閉使用此通道的任何開啟的連線。
將 TLS 繫結至 SSRS網址保留內容
入口網站網址和報表伺服器 Web 服務網址的保留項目是各自獨自設定的。
透過 TLS 加密通道來設定 Web 服務存取
若要設定可用來存取報表伺服器的網址,請執行以下步驟:
開啟報表伺服器組態管理員,並連線至報表伺服器。
在 [報表伺服器狀態] 頁面上,選取 [停止]。
[結果] 視窗中的訊息會指出伺服器已停止。
選取 [開始]。 [結果] 視窗中的訊息會指出伺服器正在執行。
在[連接] 窗格中選取 [Web 服務網址]。
在 [HTTPS 憑證] 清單中,選取您安裝的憑證。
選取套用。 [結果] 視窗中的訊息會指出組態工具的進度。
在 [報表伺服器 Web 服務網址] 下方,選取您已保留的網址。 如果出現提示,請輸入報表伺服器的認證。 瀏覽器視窗隨即開啟,提供報表伺服器的存取權。
若網址未連線到報表伺服器,請檢查報表伺服器資料庫。 若要讓網址能夠運作,您必須先建立及設定資料庫。
透過 TLS 加密通道來設定入口網站存取
如果您也想要設定透過 TLS 加密通道存取入口網站,請繼續以下步驟:
在報表伺服器組態管理員的[連接] 窗格中,選取 [入口網站 網址]。
選取進階。
在 [目前 Reporting Services 功能的多個 HTTPS 身分識別] 中,選取 [加入]。
在 [憑證] 清單中,選取您已安裝的憑證,然後選取 [OK]。
[結果] 視窗中的訊息會指出組態工具的進度。
在 [入口網站識別] 下方,選取您已保留的網址。 如果出現提示,請輸入報表伺服器的認證。 瀏覽器視窗隨即開啟,並顯示 SSRS 首頁。
憑證繫結的儲存方式
憑證繫結會儲存在 HTTP.sys 存放庫中。 您所定義之繫結的表示法也會儲存在 RSReportServer.config 檔案的 [URLReservations] 區段中。
組態檔中的設定只是在其他地方指定之實際值的一種表示法。 請勿直接修改組態檔中的值。
只有在您使用報表伺服器組態管理員或報表伺服器 Windows Management Instrumentation (WMI) 提供者來繫結憑證之後,組態設定才會出現在檔案中。
注意
如果您在 SSRS 中設定 TLS 憑證繫結,且稍後需要從電腦移除該憑證,請先從 SSRS 移除繫結,然後再移除電腦中的憑證。 否則,您將無法使用報表伺服器組態管理員或 WMI 移除繫結,且也會收到「無效的參數」訊息。
在您移除憑證後,就可以使用 HttpCfg.exe 工具從 HTTP.sys 存放庫移除繫結。 如需詳細資訊,請參閱 HttpCfg.exe。
TLS 繫結是 Windows 中的共用資源。 在您使用報表伺服器組態管理員或其他工具 (如 IIS 管理員) 變更繫結之後,這些改變可能會影響同一台電腦上的其他應用程式。
最佳做法是使用相同的工具來建立和編輯繫結。 例如,如果您使用報表伺服器組態管理員來建立 TLS 繫結,則您應使用報表伺服器組態管理員來管理繫結的生命週期。 如果您使用 IIS 管理員建立繫結,請使用 IIS 管理員管理繫結的生命週期。
如果您在安裝 SSRS 之前已先在電腦上安裝 IIS,最好先檢查 IIS 中的 TLS 設定,再設定 SSRS。