PowerShell 脚本 - SSL/TLS 安全通道失败

问题描述 投票:0回答:1

我一直在尝试使用 POST 与安全 REST API 进行通信,正确传递证书,但仅在生产服务器上我不断收到错误“请求已中止:无法创建 SSL/TLS 安全通道”。

我没有升级 Microsoft Windows Server 2008 R2 的选项。

已安装 Microsoft Framework 4.8,已应用所有补丁,并启用所有安全协议。

--在服务器 2008 上使用 POSTMAN 运行相同的 POST 效果完美

你们中有人知道为什么 PowerShell 脚本不能仅在服务器上运行吗?

在本地运行相同的 Powershell 脚本,它在 Windows 11 下完美运行

大家有什么建议吗?到目前为止我已经尝试了很多方法但没有任何效果:(

非常感谢你

powershell ssl tls1.2 windows-server-2008-r2
1个回答
0
投票

您可能需要确保在注册表中为 SCHANNEL 启用 Tls1.2。从这个键开始:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Tls12\Client

并确保有一个

Enabled
双字设置为
1

接下来,检查注册表中是否将 .Net 配置为使用强加密协议:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions" = dword:00000001
      "SchUseStrongCrypto" = dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
      "SystemDefaultTlsVersions" = dword:00000001
      "SchUseStrongCrypto" = dword:00000001

然后将其添加到您的 PowerShell 中:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

但是,正如我在评论中指出的,您确实应该采取任何必要措施来获得升级服务器的权限。

Windows Server 2008 R2 的生命周期已完全结束,并且已经有好几年了。这意味着它在那段时间没有任何更新...甚至没有关键的安全补丁,尽管有多个活跃的关键评级 CVE。继续使用它是危险且不负责任的。

今天使用的最低安全版本是 Windows Server 2016(2012 R2 也在不到一周的时间内达到了生命周期的终点。)这是值得寻找新工作的事情,因为你不想成为(而不是如果)这件事被破坏时,有人要承担责任。

© www.soinside.com 2019 - 2024. All rights reserved.