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

gcuhipw9  于 2023-10-19  发布在  Shell
关注(0)|答案(1)|浏览(224)

我一直在尝试使用POST与安全的REST API通信,正确地传递证书,但我一直收到错误“请求被中止:无法仅在生产服务器上创建SSL/TLS安全通道”。
我没有升级Microsoft Windows Server 2008 R2的选项。
已安装Microsoft Framework 4.8,应用了所有修补程序,并启用了所有安全协议。

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

你们中有人知道为什么PowerShell脚本不能只在服务器上工作吗?
在本地运行相同的Powershell脚本,它可以在Windows 11下完美运行

你们有什么建议吗?我已经尝试了很多方法,但都没有效果:(
非常感谢你

cetgtptt

cetgtptt1#

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

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

如果它不存在,请创建它,并确保有一个Enabled dword设置为1。此外,对SCHANNEL配置的任何更改在重新启动服务器之前都不会生效。
接下来,检查.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也将在不到一周的时间内结束生命周期。)这是一种值得找一份新工作的东西,因为你不想在**(而不是如果)这件事被破坏时承担责任。

相关问题