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

A fatal error occurred while creating a TLS client credential. The internal error state is 10013

最近部署了 Windows 2016 标准服务器,带有 Active Directory 和 Exchange 2016。

我们已为服务器和客户端禁用 SSL 1.0、2.0 和 3.0,并已禁用 TLS 1.0 和 TLS 1.1。

我们在系统日志中反复收到以下条目。是什么原因造成的,我该如何解决。

基本上我们必须为 .NET 启用 TLS 1.2 4.x。更改此注册表对我有用,并停止了充满 Schannel 错误的事件日志。

可以找到有关答案的更多信息here

链接信息摘要

在系统 (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 应用程序需要启用和禁用与 OS 不同的协议的边缘情况,这可能是不可取的。

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

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

所有人访问:特别适用于 'This folder only' 网络服务访问:读取和执行适用于 'This folder, subfolders and files' 管理员访问:完全控制适用于 'This folder, subfolder and files' 系统访问:完全控制适用于 'This folder, subfolder and Files' IUSR 访问:完全控制适用于 'This folder, subfolder and files' 内部错误状态为 10013 完成这些更改后,重新启动服务器。 10013 错误应该会消失。"

在未对生产服务器进行任何更改后,我们开始收到此错误。在尝试了几种不同的方法并认为可能存在 DNS 问题后,重新启动 IIS 解决了该问题(仅重新启动该站点未解决该问题)。它可能不会对每个人都有效,但如果我们先尝试它会节省很多时间。

就我而言,发生这种情况的 Windows 2016 服务器已针对安全合规性进行了强化。结果,只允许使用特定的密码套件。这导致在与高度安全的端点建立 HTTPS 连接时不兼容(例如 Apple Push Notifications API aka APNS)

为了解决这个问题,我下载了 IIS Crypto 并点击了左边的密码套件按钮,显示了 enabled/disabled 密码套件列表,然后点击了“最佳实践”按钮并重新启动服务器。问题已解决。

在 none 之后我可以在任何地方找到的方法帮助了我: 我打开事件查看器并搜索此错误何时开始如此频繁地出现。我使用 Schannel 来源的过滤器设置为 Error。就我而言,此错误时不时发生,但在某个日期,它开始每隔几秒显示一次!我转到“设置”->“应用程序和功能”并搜索在这个日期是否安装了任何新东西——结果是宾果游戏!这是 PrivadoVPN。卸载PrivadoVPN后,错误停止显示!

P.S。我并不是说 PrivadoVPN 特别有问题。可能是我的配置问题……只是建议我在我的案例中用来查找错误根本原因的方法。