bza*_*fir 3 ssl ssl-certificate reporting-services ssrs-2014
我有一个运行SSRS 2014的SSRS实例,我希望将其配置为通过SSL使用.
该服务器位于http://reports.mydomain2.com
我从域名www.mydomain.com上购买了GoDaddy的多SSL证书,并将reports.mydomain2.com添加为SAN
我从GoDaddy生成SSL证书和IIS一样,将证书导入中间证书颁发机构和个人/证书

我启动了SSRS配置管理器,我正在尝试设置SSL我看到了证书,但是当我选择它并单击Apply我得到错误,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)
Run Code Online (Sandbox Code Playgroud)
我用命令检查了绑定
netsh http show urlacl
Run Code Online (Sandbox Code Playgroud)
我在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)
Run Code Online (Sandbox Code Playgroud)
我不知道这是否有任何区别(如果端口443已经绑定,阻止它绑定到SSRS url或不
但另一个可能的问题可能是SSRS配置管理器不允许我将SSL绑定的URL更改为reports.mydomain2.com.但它试图绑定到证书的默认域.
知道什么可能是错的,我该如何解决?
我找到了解决方案,希望它能帮助别人.
从GoDaddy下载的证书不包含私钥.这是创建证书绑定错误的原因.为了解决这个问题,我必须在我在IIS中生成初始CSR的机器上导出带有私钥的证书(我还导出了所有扩展属性,以防万一)
所以我的步骤如下:

Run Code Online (Sandbox Code Playgroud)<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上的新条目
运行以下命令以查找所有有界URL.您必须找到报告服务器的URL,并记下SDDL,这在为报告服务器创建SSL URL时将需要.
netsh http show urlacl
Run Code Online (Sandbox Code Playgroud)删除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
Run Code Online (Sandbox Code Playgroud)运行以下命令为报表服务器添加正确的URL.我们需要使用绑定到端口80的报告服务器的entro中找到的SSDL(参见上面的第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=<....>
Run Code Online (Sandbox Code Playgroud)小智 6
错误:指定 IP 地址和端口组合的 SSL 绑定已存在。
有没有遇到过上面的错误?一个简单的修复如下。
我们需要删除现有的绑定,为了实现这一点,我们需要知道哪个证书实际上绑定了它;
在CMD使用下面的命令(命令提示):netsh http show sslcert;
除去通过使用下面的命令的结合:netsh http delete sslcert ipport=0.0.0.0:443;
完成后,再次将URL与SSL 证书绑定,这次它将通过。测试URL,它应该可以正常工作。
| 归档时间: |
|
| 查看次数: |
20382 次 |
| 最近记录: |