TFS内部部署构建代理 - 无法为SSL / TLS安全通道建立信任关系

时间:2016-11-16 18:17:21

标签: .net xaml ssl tfs tfsbuild

我使用列出的here指令设置了一个TFS内部部署构建代理作为服务。我设置了随附的代理池,权限,构建控制器等。并解决了围绕让代理连接和运行的大多数设置挑战。我现在有一个连接并能够运行构建的代理:

enter image description here enter image description here

我的配置如下所示:

  

" settings.json" - " ServerURL":http://tfs.XXXXXXXXX.com:80/tfs

     

"通过以下方式收听Build Agent通信:" http://XXXXXXXXXXX.com:9191/Build/v5.0/Services

但是当我尝试使用我新配置的代理池运行任何构建时,它总是在代理的日志中输入时失败:

  

System.Net.Http.HttpRequestException:发送时发生错误   请求。 ---> System.Net.WebException:底层连接   已关闭:无法建立SSL / TLS的信任关系   安全通道。 --->   System.Security.Authentication.AuthenticationException:远程   证书根据验证程序无效。

     

代理人   没能开始这份工作。错误:发送时发生错误   请求。

这对我来说非常混乱,因为在我的TFS配置中没有使用SSL。如果我没有使用端口443连接到它,它将如何在坏的证书(在这种情况下是自签名)上失败。当我通过网络浏览器(firefox)连接到该位置时,我不会自动重定向到" https"。代理商是否被重定向?同样,我能够在没有问题(或证书失败)的情况下连接到列出的URL,但似乎由于某些原因,代理不是。

我不确定我是否是唯一一个遇到此问题的人。我认为this是相关的,但不是相同版本的软件。此错误消息中有一百万个其他引用,但我没有看到具有相同上下文或配置的单个引用。有没有人见过这个问题?

1 个答案:

答案 0 :(得分:2)

Team Foundation Server本身有一个名为Notification Uri的设置,每当有任何东西询问它可以找到的东西时,它会使用这个Uri发回该位置。

在你的情况下,构建服务器想知道所有类型的东西,下载源代码,构建过程模板,上传测试结果等。当询问从哪里获取或发送这些内容时,TFS将响应该Notification Uri

您的服务器配置为使用自签名SSL证书,服务器配置为通过其通知Uri属性发回安全位置,因此您的客户端需要建立信任关系以建立通信。

有三种解决方案:

  1. 在TFS服务器上安装可信证书(如果您处于活动的dircetory设置中,这可能不像看起来那么难)。
  2. 将自签名证书安装在连接到TFS服务器的每台Windows计算机的受信任根证书存储中
  3. 通过从IIS绑定中删除证书并重新配置服务器和通知URI,在TFS服务器上启用SSL。
  4. 注意:禁用SSL可能会在安全设置中引入漏洞,具体取决于身份验证的配置方式。如果您的服务器接受基本身份验证,或者当您升级到TFS2017并激活对个人访问令牌的支持时,您的身份验证令牌可以通过网络以明文形式发送。