创建TLS客户端凭据时发生致命错误。内部错误状态为10013。

64

我们最近部署了一台Windows 2016标准版服务器,具有Active Directory和Exchange 2016。

我们已经在服务器和客户端上禁用了SSL 1.0、2.0和3.0,并且已经禁用了TLS 1.0和TLS 1.1。

我们不断收到系统日志中以下条目。这是什么原因导致的?我该如何解决它。

输入图片说明


我们在2018年10月的最后一轮Windows更新后也看到了完全相同的错误。目前还不确定确切的原因。在Windows 10上,我看到唯一可能有影响的更新是KB4462933。其他安装的十月补丁只有Adobe Flash的更新。我很确定它不会引起任何问题。如果我发现其他信息,我会发布答案或更新。哦,我们还开启了FIPS并禁用了SSL 3.0、TLS 1.0和TLS 1.1。暂时的解决方法是关闭FIPS并重新启用TLS 1.0。但请记得更改后重新启动计算机。 - T0beus
1
我无法启用TLS 1.0,否则我们的PCI合规性扫描将失败。 - neildt
4
请记住,这正是应该发生的。你要防止应用程序使用错误类型的安全连接。接下来,你需要确定到底是哪些应用程序产生了这个诊断信息,以便于修复或卸载它们。在像serverfault.com这样的网站上寻找每天都会解决此类问题的人员。 - Hans Passant
我有同样的问题。我启用了TLS 1.2和1.1,但仍然收到错误消息。其中一件事是我没有安装IIS,这是一个Win10客户端机器而不是服务器。 - glez
6个回答

33

基本上我们需要为.NET 4.x启用TLS 1.2。对我来说,进行此注册表更改有效,并停止了事件日志填充Schannel错误。

有关答案的更多信息可以在此处找到。

链接信息摘要

在系统(SCHANNEL)级别启用TLS 1.2:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

(可能也适用于其他TLS版本的等效密钥)

告诉.NET Framework使用系统TLS版本:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001

在边缘情况下,.NET Framework 4.x应用程序需要启用和禁用不同的协议,而操作系统则可能不希望这样做。


2
我在遇到相同错误后使用了 IIS Crypto GUI(https://www.nartac.com/Products/IISCrypto)来进行这些注册表更改。只需单击“最佳实践”,然后单击“应用”。重新启动。工作完成。 - Paul Suart
5
手动添加注册表或使用IISCrypto都没有帮助我解决问题。仍在寻找解决方案,因为每10秒有4个此类错误,几乎不可能检查事件日志中的其他内容。 - StarNamer
1
Set-ItemProperty 'HKLM:\SOFTWARE\Microsoft.NETFramework\v4.0.30319' -Name SystemDefaultTlsVersions -Value 1Set-ItemProperty 'HKLM:\SOFTWARE\wow6432node\Microsoft.NETFramework\v4.0.30319' -Name SystemDefaultTlsVersions -Value 1 - Alexey
1
我也用IISCrypto解决了这个问题,但我怀疑使用该应用程序进行更改也是最初引起问题的原因。 - bfhd
1
这对我不起作用。还有其他的想法吗? - LordDelacroix
同样的问题(Windows 2016 - 减去交换问题)已经添加了注册表项 - 看起来只有在检查事件日志时才会出现4673。相当奇怪。这个修复对我没有用。 - Jamie

1
在我找到的所有方法都没有帮助我的情况下: 我打开了事件查看器,并搜索了这个错误开始频繁出现的时间。我使用了一个过滤器,将源设置为SchannelError。在我的情况下,这个错误时不时地发生,但是在某个日期,它开始每隔几秒钟就会出现一次!我去了“设置” ->“应用和功能”,并搜索了这个日期是否安装了任何新的东西 - 真是太棒了!它是PrivadoVPN。卸载PrivadoVPN后,错误停止显示! P.S. 我不是说特别是PrivadoVPN有问题。也许是我的配置有问题...只是建议我在这种情况下找到错误根本原因所使用的方法。 Event Viewer Apps & features

0

我在重建从Server 2012R2迁移到DataCenter 2019的服务器时遇到了这个问题。 这让我感到非常疯狂,因为我可以从Visual Studio调试它,但是IIS立即返回500错误。

在我的情况下,我们有几个.NET 3.5和.NET 4.5应用程序混合在同一台服务器上,当我为其中一个4.5应用程序创建应用程序时,我已经将其指向了2.0应用程序池。

将其重新指向4.0应用程序池解决了这个问题。


0

在未对生产服务器进行任何更改的情况下,我们开始收到此错误。尝试了几种不同的方法并认为可能存在DNS问题后,重新启动IIS解决了该问题(仅重新启动站点无法解决该问题)。这可能不适用于所有人,但如果我们首先尝试这样做,将节省很多时间。


0
在我的情况下,发生这种情况的Windows 2016服务器已经过安全合规硬化。因此,只允许特定的密码套件。这导致在与高度安全的终端点(如Apple Push Notifications API,也称为APNS)建立HTTPS连接时出现不兼容性。
为了解决这个问题,我下载了IIS Crypto并单击左侧的Cipher Suites按钮,以显示启用/禁用的密码套件列表,然后单击“最佳实践”按钮并重新启动服务器。问题解决了。

-2

我在这里找到了这个链接:https://port135.com/schannel-the-internal-error-state-is-10013-solved/

"正确的文件权限 更正c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys文件夹的权限:

Everyone Access: 特殊应用于“仅此文件夹” Network Service Access: 读取和执行应用于“此文件夹、子文件夹和文件” Administrators Access: 完全控制应用于“此文件夹、子文件夹和文件” System Access: 完全控制应用于“此文件夹、子文件夹和文件” IUSR Access: 完全控制应用于“此文件夹、子文件夹和文件” 内部错误状态为10013 完成这些更改后,重新启动服务器。10013错误应该会消失。"


我不知道为什么这个问题没有得到关注。对于消除系统事件日志条目,注册表中的任何修改都没有起作用,但是这个方法却有效。然而,它仍然无法解决我在Windows 11中使用.NET API连接TLS v1.x时遇到的问题。 - Demetrios Christopher
我并不讨厌你,但是你的帖子“难以阅读”,这种格式很难理解。你甚至没有换行。 你应该做一个更好的格式,也许加上你所做的截图。 顺便说一句:你提到的那些黑客技巧对我也没用。但我的笔记本电脑是由公司管理的,你的建议对我也不可行。 - D. Lohrsträter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接