我试图在Azure DevOps的发布管道中的powershell任务之一中调用TFS和/或Azure DevOps REST Api。我尝试在两个不同的服务器(安装了azure管道代理)中运行相同的REST API代码,但是其中一个正在运行,并且其中一个返回“底层连接已关闭:接收时发生意外错误。”。这两个代理服务器均启用了tls 1.1和1.2。工作的服务器具有Powershell v 4.0,返回错误的服务器具有v5.0。
当我运行“ [Net.ServicePointManager] :: SecurityProtocol”时,两个服务器都返回了ssl3 Tls。
我有一种解决方法,该服务器通过使用返回错误 [Net.ServicePointManager] :: SecurityProtocol = [Net.SecurityProtocolType] :: Tls12 但是我想知道为什么我需要在其中一台服务器上强制使用TLS 1.2,而在其他服务器似乎具有相同的TLS配置时却不使用它们。
答案 0 :(得分:1)
在不了解服务器的其他知识的情况下,可能会使用PowerShell V4在该服务器上设置注册表项设置。
您可以检查以下reg键以查看它们是否具有以下属性:
'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord