10

我有一个运行 SSRS 2014 的 SSRS 实例,我想将其配置为通过 SSL 使用。

服务器位于http://reports.mydomain2.com

我在域名 www.mydomain.com 上从 GoDaddy 购买了多 SSL 证书,并将 reports.mydomain2.com 添加为 SAN

我从 GoDaddy 为 IIS 生成 SSL 证书,将证书导入中间证书颁发机构和个人/证书 在此处输入图像描述 在此处输入图像描述

我启动了 SSRS 配置管理器,我正在尝试设置 SSL 我看到证书,但是当我选择它并单击应用时,我收到错误,即 SSL 证书无法绑定

在此处输入图像描述

显示的错误是

Microsoft.ReportingServices.WmiProvider.WMIProviderException: An unknown error has occurred in the WMI Provider. Error Code 80070520

 ---> System.Runtime.InteropServices.COMException (0x80070520): A specified logon session does not exist. It may already have been terminated. (Exception from HRESULT: 0x80070520)
   --- End of inner exception stack trace ---
   at Microsoft.ReportingServices.WmiProvider.RSWmiAdmin.ThrowOnError(ManagementBaseObject mo)
   at Microsoft.ReportingServices.WmiProvider.RSWmiAdmin.CreateSSLCertificateBinding(String application, String certificateHash, String ipAddress, Int32 port)
   at ReportServicesConfigUI.WMIProvider.RSReportServerAdmin.CreateSSLCertificateBinding(UrlApplication app, String certificateHash, String ipAddress, Int32 port)

我用命令检查了绑定

netsh http show urlacl

我在端口 443 上找到了一个条目

Reserved URL            : https://+:443/sra_{BA195980-CD49-458b-9E23-C84EE0ADCD75}/
    User: NT SERVICE\SstpSvc
        Listen: Yes
        Delegate: Yes
    User: BUILTIN\Administrators
        Listen: No
        Delegate: No
    User: NT AUTHORITY\SYSTEM
        Listen: Yes
        Delegate: Yes
        SDDL: D:(A;;GA;;;S-1-5-80-3435701886-799518250-3791383489-3228296122-2938884314)(A;;GR;;;BA)(A;;GA;;;SY) 

我不知道这是否有任何区别(如果端口 443 已经绑定,阻止它绑定到 SSRS url

但另一个可能的问题是 SSRS 配置管理器不允许我将 SSL 绑定的 url 更改为 reports.mydomain2.com。但相反,它尝试绑定到证书的默认域。

知道可能出了什么问题,我该如何解决?

4

2 回答 2

17

我想出了解决方案,希望它能帮助其他人。

从 GoDaddy 下载的证书不包含私钥。这是创建证书绑定错误的原因。为了解决这个问题,我必须在我在 IIS 中生成初始 CSR 的机器上导出带有私钥的证书(我还导出了所有扩展属性,以防万一)

所以我的步骤如下:

  1. 在我生成 CSR 的机器上,我导入从证书颁发机构收到的证书。
  2. 在同一台机器上,我将带有私钥和扩展属性的证书导出到 .pfx
  3. 在 SSRS 机器上,我导入了导出的证书
  4. 启动 SSRS 配置管理器,在 Web 服务 URL 部分,选择新导入的证书,然后单击应用
  5. 如果证书是使用与 SSRS 服务器的 DNS 完全匹配的 url 生成的,则应该完成。
  6. 如果证书的 url 与 SSRS DNS 名称不匹配(但报告服务器的 url 上有一个 SAN,您将看到在 SSRS 配置管理器中选择的 SSL 证书设置为未知,并且 ssl url 也设置为未知。 SSRS 显示证书和 SSL url 未知
  7. 打开 SSRS 配置文件 RsReportServer.config,编辑 UrlReservations 条目,为 SSL 设置所需的 url
<URLReservations>
  <Application>
      <Name>ReportServerWebService</Name>
      <VirtualDirectory>ReportServer</VirtualDirectory>
      <URLs>
          <URL>
              <UrlString>https://reports.mydomain2.org:443</UrlString>
              <AccountSid>....</AccountSid>
              <AccountName>NT Service\ReportServer</AccountName>
          </URL>
          <URL>
              <UrlString>http://+:80</UrlString>
              <AccountSid>....</AccountSid>
              <AccountName>NT Service\ReportServer</AccountName>
          </URL>
      </URLs>
  </Application>
  <Application>
      <Name>ReportManager</Name>
      <VirtualDirectory>Reports</VirtualDirectory>
      <URLs>
          <URL>
              <UrlString>http://+:80</UrlString>
              <AccountSid>....</AccountSid>
              <AccountName>NT Service\ReportServer</AccountName>
          </URL>
          <URL>
              <UrlString>https://reports.mydomain2.org:443</UrlString>
              <AccountSid>....</AccountSid>
              <AccountName>NT Service\ReportServer</AccountName>
          </URL>
      </URLs>
  </Application>
</URLReservations>

您必须仅添加或编辑 https 条目(您会在端口 80 上找到 http 条目,您不应更改),并使用端口 80 条目中的 AccountSid 获取 ssl 上的新条目

  1. 运行以下命令以查找所有有界 URL。您必须找到报告服务器的 url,并记下 SDDL,这在为报告服务器创建 SSL URL 时将需要。

    netsh http show urlacl
    
  2. 删除由 SSRS 配置管理器创建的有界 URL,它指向错误的 url(为其创建证书的主 url)

    netsh http delete urlacl url=https://www.mydomain1.org:443/ReportServer
    netsh http delete urlacl url=https://www.mydomain1.org:443/Reports
    
  3. 运行以下命令为报表服务器添加正确的 URL。我们需要使用在 entroes 中找到的 SSDL 用于绑定到端口 80 的报表服务器(参见上面的第 8 点)

    netsh http add urlacl url=https://reports.mydomain2.org:443/ReportServer user="NT Service\ReportServer" listen=yes sddl=<....>
    netsh http add urlacl url=https://reports.mydomain2.org:443/Reports user="NT Service\ReportServer" listen=yes sddl=<....>
    
于 2015-12-20T18:51:32.817 回答
7

错误:指定 IP 地址和端口组合的 SSL 绑定已存在。

遇到过上述错误吗?下面是一个简单的修复。

  • 我们需要删除现有的绑定,为了实现这一点,我们需要知道哪个证书实际绑定了它;

  • 在 cmd(命令提示符)中使用以下命令netsh http show sslcert

  • 使用以下命令删除绑定netsh http delete sslcert ipport=0.0.0.0:443

完成后,再次将URLSSL 证书绑定,这一次它将通过。测试URL,它应该可以正常工作。

于 2017-07-07T10:28:04.117 回答