为 SSL 配置 SSRS

2023-11-24

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

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

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

I generated the SSL certificate from GoDaddy as for IIS, imported the certificate into Intermediate Certification Authority and in Personal/Certificates enter image description here enter image description here

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

enter image description here

显示的错误是

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 绑定到 reports.mydomain2.com 的 url。但它尝试绑定到证书的默认域。

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


我找到了解决方案,希望对其他人有帮助。

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

所以我的步骤如下:

  1. 在生成 CSR 的计算机上,我导入从证书颁发机构收到的证书。
  2. 在同一台计算机上,我将带有私钥和扩展属性的证书导出到 .pfx
  3. 在SSRS机器上,我导入了导出的证书
  4. 启动 SSRS 配置管理器,在 Web 服务 URL 部分,选择新导入的证书,然后单击Apply
  5. 如果生成的证书的 url 与 SSRS 服务器的 DNS 完全匹配,那么您应该完成了。
  6. If the url of the certificate doesn't match the SSRS DNS name (but there is a SAN on the url of the reporting server, you will see the SSL certificate selected in SSRS Configuration manager set as Unknown and the ssl url as Unknown also. SSRS showing unknown for certificate and 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 时将需要该 SDDL。

    netsh http show urlacl
    
  2. 删除 SSRS 配置管理器创建的有界 URL,该 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=<....>
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 SSL 配置 SSRS 的相关文章

随机推荐

  • 从另一个 Servlet 调用 Servlet Post

    我需要从另一个 servlet 调用 servlet POST 方法 并在 servlet 参数中传递一个 blob 这可能吗 如果可以的话该怎么办 PS 我无法使用 Apache HttpClient 您需要自己创建并发送 HTTP 请求
  • 为什么切片长度大于容量会产生运行时错误?

    制作了容量小于长度的切片 package main import fmt func main type b int var k make b 10 5 fmt Println k 8 当尝试运行时会出现以下错误 恐慌 运行时错误 makes
  • jquery 3.1.0 和 jquery-ui 自动完成不兼容,解决方法是什么?

    我在让 jQuery 3 1 0 使用 jQuery UI 的自动完成功能时遇到问题 我知道的唯一解决方法是用 jQUERY UI 安装程序预打包的版本替换 jQuery 3 1 0 不幸的是 这对我不起作用 因为 jQuery UI 安装
  • 在使用局部变量之前复制对局部变量的引用是否很重要

    探索 OpenJDK 8 中 java util LinkedList 的代码 我发现了以下代码 代码很简单 但我对将第一个节点的引用保存到第二行代码中的常量感到困惑 据我了解 这段代码将被内联为一行而不进行引用复制 我对吗 如果是这样 为
  • EF Core 中的 .Configuration.ProxyCreationEnabled 相当于什么?

    Entity Framework Core 中的 Configuration 相当于什么 接收错误如下 代码示例 List
  • 如何在SpriteKit中创建绳子?

    我想制作一根像图中所示的绳子video 开发这样的绳子的最佳方法是什么 我已经尝试过开始 我认为最好的方法是制作许多小 绳子 部件并用销接头连接它们 这真的是最好的吗 但我不知道如何开始 也许有人可以给我一些示例代码 THX 我是该视频的作
  • 如何将 CMS 添加到现有网站 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我有一个现有的 ASP NET 网站 我想轻松地向其添加 CMS 功能 该网站是房地产经纪人的房地产网站 由数据库等支持 但是有些页面如 关于我们
  • 如何增加Docker容器默认大小?

    我们创建了默认大小为 10GB 的 docker 镜像 并且已经加载了 cassandra 数据 现在数据已满 意味着没有空间 谁能告诉我如何在不丢失现有数据的情况下将 docker 容器大小从 10GB 增加到 40GB 使用 devic
  • UniVerse学习材料[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我最近接触到了 UniVerse 的专有后代 有谁知道我在哪里可以获得好的教程或温习其更受欢迎的父级的语法怪癖 我什至不知道如何获得表格列表 导航很困难 而且我没有看到任何手册页 更
  • Drupal localhost 重定向到 www.localhost.com

    我正在开发一个 drupal 站点 我将其签出 svn 到我的本地主机 现在的问题是 当我去 http www site com 一切正常 但是当我去 http localhost 工作 站点 我被重定向到 http www localho
  • 无法使用 R 中的 sqlSave 附加到 SQL Server 表

    我正在尝试使用 R 中 RODBC 包的 sqlSave 函数更新 SQL 表 数据存在于数据框中 当我尝试运行命令时 sqlSave DBConn dat df verbose T tablename table append T 我收到
  • 如何增加 ASP.NET WebAPI Post 调用的 json 大小限制?

    我在页面上的表单有点太大了 它收集每月的测量数据 请看一下示例 Year 2013 Month 3 Records Id 0 Date 3 1 2013 RiverSection 5 UserNumber 56 Id 0 Date 3 1
  • 如何在 Swift 3 中将 __NSMallocBlock__ 转换为其基础类型?

    I had a trick帮助测试UIAlertController在 Swift 2 x 中有效 extension UIAlertController typealias AlertHandler convention block UI
  • 无法编译任何C++程序;错误:未知类型名称“uint8_t”

    编辑2 问题是不是简单的印刷错误 我在下面的日志中犯了一个拼写错误 我已更正该错误 但问题仍然存在 编辑 在尝试下面之后 我错误地使用 gcc 而不是 g 运行了一次 g 以前就存在这个问题 现在也存在 我目前使用的是 MacOS High
  • 如何从从另一个文件夹中加载的程序集中获取类型?

    我使用以下代码 Assembly LoadFile the assembly in another folder var type Type GetType the full name of the type 即使程序集已经在这行代码之前加
  • 如何使用 sed 替换源文件中的版权/许可证标头?

    我需要用 Apache License 2 0 标头替换所有 Java 源文件中的 LGPL 许可证标头 即 Copyright c 2012 Tyler Treat This file is part of Project Foo Pro
  • 直接P2P连接

    这个主题类似于这个线程 我对网络编程主题相当陌生 除了在单个本地计算机上执行基本的 TCP UDP 之外 从未做过任何其他事情 现在我正在开发一个需要 P2P 网络支持的应用程序 更具体地说 我需要应用程序通过互联网进行连接和通信 最好不使
  • 如何使用 Apache POI (Java) 在 Excel 中创建表单控件(单选、复选框、按钮等)?

    我是否可以使用 Java 通过 Apache POI 库为 Excel 生成表单控件 如果这不可能 还有什么替代方案 我真的需要这个来完成我的工作 预先感谢 对于 Excel 2007 或更高版本 由于 Apache POI 在 OpenX
  • 在后台运行 JavaExec 任务,然后在构建完成时终止

    我试图找出如何启动一个 JavaExec 任务来生成 Jetty 服务器而不阻塞后续任务 另外 我需要在构建完成后终止该服务器 知道我该怎么做吗 我知道该线程是 2011 年的 但我仍然偶然发现了这个问题 这是使用 Gradle 2 14
  • 为 SSL 配置 SSRS

    我有一个运行 SSRS 2014 的 SSRS 实例 我想将其配置为通过 SSL 使用 服务器位于http reports mydomain2 com 我从 GoDaddy 购买了域名 www mydomain com 上的多 SSL 证书