在本机模式报表服务器上配置 TLS 连接
适用于: SQL Server 2016 (13.x) Reporting Services 及更高版本 Power BI 报表服务器
在 SQL Server Reporting Services (SSRS) 本机模式中,可以使用传输层安全性 (TLS) 协议服务建立到 Report Server 的加密连接。 TLS 旧称为“安全套接字层 (SSL)”。 如果在报表服务器的本地证书存储区中安装证书 (.cer) 文件,则可将该证书绑定到 SSRS URL 预留,以支持通过加密通道建立报表服务器连接。
提示
有关 SSRS SharePoint 模式的详细信息,请参阅 Reporting Services 报表服务器(SharePoint 模式)。
由于 Internet Information Services (IIS) 也使用 SSL,因此在同一计算机上运行 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
证书现在可用于 Report Server Configuration Manager。
如果要在同一台计算机上一起运行 IIS 和 SSRS,则可以使用 IIS 管理器控制台应用程序请求并安装证书:
与 IIS 的互操作性问题
如果同一计算机上同时有 IIS 和 SSRS,则会严重影响与报表服务器的 TLS 连接:
- 为 TLS 连接配置报表服务器 URL 时,在 IIS 上创建了依赖关系。 IIS 反过来又依赖于 World Wide Web 发布服务。 因此,为 TLS 连接配置报表服务器 URL 时,必须运行 World Wide Web 发布服务。
- 卸载 IIS 可能会暂时中断服务连接到与 TLS 绑定的报表服务器 URL。 卸载 IIS 后,应重启计算机以清除缓存中的所有 TLS 会话。 部分操作系统最多会缓存 10 小时的 TLS 会话。 因此,从 HTTP.sys 存储库中的 URL 预留中删除 TLS 绑定后,TLS 绑定的 URL 可以继续工作。 重新启动计算机会关闭使用通道的所有已打开的连接。
将 TLS 绑定到 SSRS URL 预留
Report Server Web 门户 URL 和 Web 服务 URL 的预留都是单独配置的。
通过 TLS 加密通道配置 Web 服务访问权限
若要配置可用于访问 Report Server 的 URL,请执行以下步骤:
打开 Report Server Configuration Manager 并连接到 Report Server。
在“报表服务器状态”页中,选择“停止”。
“结果”窗口中的消息指示服务器已停止。
选择开始。 “结果”窗口中的消息指示服务器正在运行。
在“连接”窗格中,选择“Web 服务 URL”。
在“HTTPS 证书”列表中,选择安装的证书。
选择“应用”。 “结果”窗口中的消息指示配置工具的进度。
在报表服务器 Web 服务 URL下,选择保留的 URL。 如果出现提示,请输入报表服务器的凭据。 浏览器窗口会打开,以提供对报表服务器的访问权限。
如果 URL 未连接到报表服务器,请检查报表服务器数据库。 若要 URL 正常工作,首先需要创建和配置数据库。
通过 TLS 加密通道配置 Web 门户访问权限
如果还要为 Web 门户配置通过 TLS 加密的通道进行访问,请执行以下步骤:
在“连接”窗格的 Reporting Services 配置管理器中,选择“Web 门户 URL”。
选择“高级”。
在“当前 Reporting Services 功能的多个 HTTPS 标识”下,选择“添加”。
在“证书”列表中,选择安装的证书,然后选择“确定”。
“结果”窗口中的消息指示配置工具的进度。
在“Web 门户网站标识”下,选择保留的 URL。 如果出现提示,请输入报表服务器的凭据。 浏览器窗口会打开,并显示 SSRS 主页。
证书绑定的存储方式
证书绑定存储在 HTTP.SYS 存储库中。 已定义的绑定的表示形式将存储在 RSReportServer.config 文件的 URLReservations 部分。
配置文件中的设置只是在其他地方指定的实际值的表示形式。 请不要直接在该配置文件中修改这些值。
仅当你使用 Report Server Configuration Manager 或报表服务器 Windows Management Instrumentation (WMI) 提供程序绑定证书后,才会在文件中显示配置设置。
注意
如果在 SSRS 中为绑定配置 TLS 证书,但稍后又想要从计算机中删除证书,请先从 SSRS 中删除绑定,再从计算机中删除证书。 否则,无法使用报表服务器配置管理器或 WMI 删除绑定,并且你会收到“参数无效”消息。
从计算机删除证书后,可以使用 Httpcfg.exe 工具从 HTTP.sys 存储库删除绑定。 有关详细信息,请参阅 HttpCfg.exe。
TLS 绑定是 Windows 中的共享资源。 使用 Reporting Services 配置管理器或诸如 IIS 管理器之类的其他工具更改绑定时,这些更改可能会影响同一计算机上的其他应用程序。
最佳做法是使用相同的工具创建和编辑绑定。 例如,如果要使用 Report Server 配置管理器创建 TLS 绑定,则也应使用 Report Server 配置管理器来管理绑定的生命周期。 如果使用 IIS 管理器来创建绑定,则应使用 IIS 管理器来管理绑定的生命周期。
如果在安装 SSRS 前在计算机上安装了 IIS,最好在配置 SSRS 前审阅 IIS 中的 TLS 配置。