在访问SSRS管理时,可以选择0个客户端证书。

时间:2018-04-04 21:57:35

标签: ssl reporting-services ssrs-2008-r2 tls1.2 schannel

环境

在安装了.Net 4.6.1且启用.Net 3.5的Windows 2008服务器上运行SQL Server 2008 R2 SP3上的Reporting Services。本地计算机中的IIS,数据库和报告服务(不同计算机中的自定义登录URL,但似乎不相关)。

已完成的更改

出于安全原因,我们强制转移到TLS 1.2,因此我们使用IISCrypto启用了TLS 1.2

结果

从这一刻起,我们只在尝试访问报告管理网站时才会收到错误消息。在浏览器上,我们收到错误500:

  

基础连接已关闭:发生意外错误   收到

在SSRS日志中,我们可以看到以下异常:

  

System.Net.WebException :底层连接已关闭:An   接收时发生意外错误。 ---> System.ComponentModel.Win32Exception :客户端和服务器无法   沟通,因为他们没有共同的算法

callstack在ReportServer OnInit()上启动,因此它在启动时失败,并且在Reporting Services初始化时发生错误。

在.Net Framework上启用跟踪我发现以下消息,其中显示SSRS调用自己的Web服务时发生故障:

System.Net Information: 0 : [5076] HttpWebRequest#38854310 - Request: POST /ReportServer/ReportService2010.asmx HTTP/1.1

System.Net Information: 0 : [4124]

SecureChannel#52830003::.ctor(hostname=themachineshostname, #clientCertificates=0)

System.Net Information: 0 : [4124] Enumerating security packages:

System.Net Information: 0 : [4124]     Negotiate

System.Net Information: 0 : [4124]     NegoExtender

System.Net Information: 0 : [4124]     Kerberos

System.Net Information: 0 : [4124]     NTLM

System.Net Information: 0 : [4124]     Schannel

System.Net Information: 0 : [4124]     Microsoft Unified Security Protocol Provider

System.Net Information: 0 : [4124]     WDigest

System.Net Information: 0 : [4124]     TSSSP

System.Net Information: 0 : [4124]     pku2u

System.Net Information: 0 : [4124]     CREDSSP

System.Net Information: 0 : [4124] SecureChannel#52830003 - Left with 0 client certificates to choose from.

System.Net Information: 0 : [4124] AcquireCredentialsHandle(package = Microsoft Unified Security Protocol Provider, intent  = Outbound, scc = System.Net.SecureCredential)

System.Net Error: 0 : [4124] AcquireCredentialsHandle() failed with error 0X80090331.

已检查的内容

正在使用的证书仍然有效,并且其签名链被放置在适当的“中间”和“根”商店中。

以管理员身份运行应用程序池无济于事。

使用从IIS生成的自定义签名证书无济于事。

重要此问题仅发生在Reporting Services管理网站上,报告正常

后续步骤

还有什么想法可以尝试?有没有办法知道为什么安全包没有被选中?

更新

该问题与TLS1.2无关,因为再次启用TLS 1我得到了相同的错误。我猜测登录URL是以某种方式涉及的。

1 个答案:

答案 0 :(得分:4)

让我们确保在注册表中正确设置了两件事(在Report Server和IIS自定义登录服务器上)。达到设置更改后需要重新启动(一次执行一次以查看哪些有效)。

TLS 1.2注册表中的客户端/服务器启用

转到HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL并确保已启用TLS 1.2并禁用其他提供商。如果TLS 1.2不存在则创建它。 详情here

确保UseStrongCrypto已启用.NET

转到here并确保启用强加密。

注意:我在移动设备上很难输入深入的答案。如果这些东西适合你,我可以在以后的答案中添加更多细节。