Kör agenten med ett självsignerat certifikat
Azure DevOps Server 2022 – Azure DevOps Server 2019
Det här avsnittet beskriver hur du kör en lokalt installerad agent med ett självsignerat certifikat.
Kommentar
Den här artikeln gäller för agentversionerna 2.x och senare.
Arbeta med SSL-servercertifikat
Enter server URL > https://corp.tfs.com/tfs
Enter authentication type (press enter for Integrated) >
Connecting to server ...
An error occurred while sending the request.
Agentdiagnostikloggen visar:
[2017-11-06 20:55:33Z ERR AgentServer] System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: A security error occurred
Det här felet kan tyda på att det servercertifikat som du använde på TFS-servern inte är betrott av byggdatorn. Se till att du installerar ditt självsignerade SSL-servercertifikat i OS-certifikatarkivet.
Windows: Windows certificate store
Linux: OpenSSL certificate store
macOS: OpenSSL certificate store for agent version 2.124.0 or below
Keychain for agent version 2.125.0 or above
Du kan enkelt kontrollera om certifikatet har installerats korrekt genom att köra några kommandon. Du bör vara bra så länge SSL-handskakningen har slutförts korrekt även om du får en 401 för begäran.
Windows: PowerShell Invoke-WebRequest -Uri https://corp.tfs.com/tfs -UseDefaultCredentials
Linux: curl -v https://corp.tfs.com/tfs
macOS: curl -v https://corp.tfs.com/tfs (agent version 2.124.0 or below, curl needs to be built for OpenSSL)
curl -v https://corp.tfs.com/tfs (agent version 2.125.0 or above, curl needs to be built for Secure Transport)
Om du på något sätt inte kan installera certifikatet i datorns certifikatarkiv på grund av olika orsaker, till exempel: du har inte behörighet eller om du befinner dig på en anpassad Linux-dator. Agentversion 2.125.0 eller senare har möjlighet att ignorera verifieringsfel för SSL-servercertifikat.
Viktigt!
Detta är inte säkert och rekommenderas inte. Vi rekommenderar starkt att du installerar certifikatet i ditt datorcertifikatarkiv.
Skicka --sslskipcertvalidation
under agentkonfigurationen
./config.cmd/sh --sslskipcertvalidation
Kommentar
Det finns en begränsning för att använda den här flaggan i Linux och macOS
Libcurl-biblioteket på din Linux- eller macOS-dator måste skapas med OpenSSL, mer information
Git get-källor misslyckas med SSL-certifikatproblem (endast Windows-agent)
Vi skickar kommandorads-Git som en del av Windows-agenten. Vi använder den här kopian av Git för alla Git-relaterade åtgärder. När du har ett självsignerat SSL-certifikat för din lokala TFS-server måste du konfigurera den Git som vi levererade för att tillåta det självsignerade SSL-certifikatet. Det finns två metoder för att lösa problemet.
Ange följande git-konfiguration på global nivå efter agentens körning som användare.
git config --global http."https://tfs.com/".sslCAInfo certificate.pem
Kommentar
Att ange Git-konfiguration på systemnivå är inte tillförlitligt i Windows. Systemets .gitconfig-fil lagras med kopian av Git som vi paketerade, som ersätts när agenten uppgraderas till en ny version.
Aktivera git att använda
SChannel
under konfigurationen med 2.129.0 eller senare versionsagentpass--gituseschannel
under agentkonfigurationen./config.cmd --gituseschannel
Kommentar
Git SChannel har mer begränsade krav för ditt självsignerade certifikat. Självsingat certifikat som genereras av IIS- eller PowerShell-kommandot kanske inte kan använda SChannel.
Arbeta med SSL-klientcertifikat
IIS har en SSL-inställning som kräver alla inkommande begäranden till Azure DevOps Server eller TFS måste presentera klientcertifikat utöver de vanliga autentiseringsuppgifterna.
När IIS SSL-inställningen är aktiverad måste du använda 2.125.0
eller över versionsagenten och följa dessa extra steg för att konfigurera byggdatorn mot din Azure DevOps- eller TFS-server.
Förbereda all nödvändig certifikatinformation
- CA-certifikat i
.pem
format (Detta bör innehålla den offentliga nyckeln och signaturen för CA-certifikatet, du behöver placera rotcertifikatutfärdarcertifikatet och alla dina mellanliggande ca-certifikat i en.pem
fil) - Klientcertifikat i
.pem
format (detta bör innehålla den offentliga nyckeln och signaturen för klientcertifikatet) - Privat nyckel för klientcertifikat i
.pem
format (detta bör endast innehålla den privata nyckeln för klientcertifikatet) - Klientcertifikatarkivpaket i
.pfx
format (detta bör innehålla signaturen, den offentliga nyckeln och den privata nyckeln för klientcertifikatet) - Använd
SAME
lösenord för att skydda klientcertifikatets privata nyckel och klientcertifikatarkivpaketet, eftersom båda har klientcertifikatets privata nyckel
- CA-certifikat i
Installera CA-certifikat i datorcertifikatarkivet
- Linux: OpenSSL-certifikatarkiv
- macOS: System- eller användarnyckelring
- Windows: Windows-certifikatarkiv
Pass
--sslcacert
,--sslclientcert
,--sslclientcertkey
.--sslclientcertarchive
och--sslclientcertpassword
under agentkonfigurationen..\config.cmd/sh --sslcacert ca.pem --sslclientcert clientcert.pem --sslclientcertkey clientcert-key-pass.pem --sslclientcertarchive clientcert-archive.pfx --sslclientcertpassword "mypassword"
Lösenordet för din privata nyckel för klientcertifikat lagras säkert på varje plattform.
Linux: Encrypted with a symmetric key based on the machine ID macOS: macOS Keychain Windows: Windows Credential Store
Läs mer om stöd för agentklientcertifikat.