我一直在尝试使用 POST 与安全 REST API 进行通信,正确传递证书,但仅在生产服务器上我不断收到错误“请求已中止:无法创建 SSL/TLS 安全通道”。
我没有升级 Microsoft Windows Server 2008 R2 的选项。
已安装 Microsoft Framework 4.8,已应用所有补丁,并启用所有安全协议。
--在服务器 2008 上使用 POSTMAN 运行相同的 POST 效果完美
你们中有人知道为什么 PowerShell 脚本不能仅在服务器上运行吗?
在本地运行相同的 Powershell 脚本,它在 Windows 11 下完美运行
大家有什么建议吗?到目前为止我已经尝试了很多方法但没有任何效果:(
非常感谢你
您可能需要确保在注册表中为 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 也在不到一周的时间内达到了生命周期的终点。)这是值得寻找新工作的事情,因为你不想成为当(而不是如果)这件事被破坏时,有人要承担责任。