2016-11-16 1 views
1

here에 나열된 지침을 사용하여 하나의 TFS 온 - 프레미스 빌드 에이전트를 서비스로 설정했습니다. 내가 첨부 된 에이전트 풀, 사용 권한, 설치 컨트롤러 등을 설정하고 에이전트를 연결하고 실행하는 데 필요한 대부분의 설치 문제를 해결했습니다.TFS (Premise Build Agent) - SSL/TLS 보안 채널에 대한 트러스트 관계를 설정할 수 없습니다.

enter image description here enter image description here

내 구성이 같은 같습니다 : 지금 연결하고 실행할 수있는 에이전트 빌드가

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

"Listen for Build Agent communication on:" http://XXXXXXXXXXX.com:9191/Build/v5.0/Services

을하지만 사용하여 내 새로 어떤 빌드를 실행하려고하면 구성된 에이전트 풀 에이전트 로그에 항목이있을 때 항상 실패합니다.

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.

The Agent failed to start this job. Error: An error occurred while sending the request.

이것은 매우 잘못되었습니다 내 TFS 구성에서 SSL을 사용하지 않기 때문에 나에게 융합되었습니다. 포트 443을 사용하지 않을 경우 잘못된 인증서 (이 경우 자체 서명)에서 어떻게 실패합니까? 해당 위치로 웹 브라우저 (firefox)를 통해 연결하면 자동으로 "https"로 리디렉션되지 않습니다. 에이전트가 어떻게 리디렉션됩니까? 다시 말하지만, 문제없이 (또는 실패한 인증서) 나열된 URL에 연결할 수 있지만 에이전트가 아닌 이유로 볼 수 있습니다.

나는이 문제가있는 유일한 사람인지 확실하지 않습니다. 내 생각에 this은 관련이 있지만 소프트웨어의 동일한 버전이 아닙니다. 이 오류 메시지에 대한 백만 번 다른 참조가 있지만 동일한 컨텍스트 또는 구성을 가진 단일 메시지는 표시되지 않습니다. 이전에이 문제를 본 사람이 있습니까?

+0

서버의 관리 패널에있는 TFS 서버의 알림 Uri는 무엇입니까?https 위치로 설정되면 초기 연결 후 빌드 에이전트가 리디렉션됩니다. Windows의 신뢰할 수있는 루트 인증서의 저장소에 자체 서명 된 서버 인증서를 추가하면 빌드 에이전트가 인증 할 수 있어야합니다. – jessehouwing

+0

아, 네가 맞다면, 그것은 "https"이다. 또한 두 번째 제안에서 나는 광범위하게 맞다고 생각하지만, 그 변화의 세부 사항은 처음에는 생각했던 것보다 [실질적으로 더 복잡하다] (http://stackoverflow.com/a/8752467/2912011). 이 질문은이 질문의 범위를 벗어납니다. 나는 "알림 URL"을 변경하는 것이 다른 누구에게나 가장 쉬운 해결책 일 것이라고 생각합니다. –

답변

2

Team Foundation Server 자체에는 Notification Uri라는 설정이 있습니다. 무엇이든지 찾을 수있는 곳이있을 때마다이 Uri를 사용하여 위치를 다시 보내줍니다.

빌드 서버는 모든 종류의 것들을 알고, 소스 코드를 다운로드하고, 빌드 프로세스 템플릿을 업로드하고, 테스트 결과를 업로드하려고합니다. TFS는 이러한 정보를 어디에서 가져 오거나 보내야하는지 묻는 경우 해당 알림 우리.

서버가 자체 서명 된 SSL 인증서를 사용하도록 구성되어 있고 서버가 알림 위치 Uri 속성을 통해 보안 위치를 되돌려 보내도록 구성되어 있으므로 클라이언트가 통신을 설정하기 위해 트러스트 관계를 구축해야합니다.

이 세 가지 솔루션이 있습니다

  1. 는 TFS 서버에서 신뢰할 수있는 인증서 설치 (당신이 활성 dircetory 설정에있어 경우를,이 보인다만큼 열심히하지 않을 수 있습니다).
  2. TFS 서버에 연결하는 각 Windows 컴퓨터의 신뢰할 수있는 루트 인증서 저장소에 자체 서명 된 인증서를 설치하십시오.
  3. IIS 바인딩에서 인증서를 제거하고 서버 및 알림 URI를 다시 구성하여 TFS 서버에서 SSL을 설정합니다.

참고 : 해제 SSL 인증 구성 방법에 따라 보안 설정에 구멍을 소개 할 수 있습니다. 서버가 기본 인증을 수락하거나 TFS2017로 업그레이드하고 개인 액세스 토큰에 대한 지원을 활성화하면 인증 토큰이 일반 텍스트로 유선을 통해 전송 될 수 있습니다.

관련 문제