Führen Sie den Agent mit einem selbst signierten Zertifikat aus
Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
In diesem Thema wird erläutert, wie Sie einen selbst gehosteten v2-Agent mit selbst signiertem Zertifikat ausführen.
Arbeiten mit SSL-Serverzertifikat
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.
Das Agent-Diagnoseprotokoll zeigt:
[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
Dieser Fehler kann darauf hinweisen, dass das serverbasierte Zertifikat, das Sie auf Ihrem TFS-Server verwendet haben, nicht vom Buildcomputer vertrauenswürdig ist. Stellen Sie sicher, dass Sie Ihr selbst signiertes SSL-Serverzertifikat im Betriebssystemzertifikatspeicher installieren.
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
Sie können einfach überprüfen, ob das Zertifikat ordnungsgemäß installiert wurde, indem Sie wenige Befehle ausführen. Sie sollten gut sein, solange SSL-Handshake richtig abgeschlossen ist, auch wenn Sie eine 401 für die Anforderung erhalten.
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)
Wenn Sie das Zertifikat aufgrund verschiedener Gründe nicht erfolgreich in den Zertifikatspeicher Ihres Computers installieren können, z. B. : Sie haben keine Berechtigung oder sind auf einem angepassten Linux-Computer. Der Agent version 2.125.0 oder höher hat die Möglichkeit, SSL-Serverzertifikatüberprüfungsfehler zu ignorieren.
Wichtig
Dies ist nicht sicher und nicht empfohlen, wir empfehlen Ihnen, das Zertifikat im Computerzertifikatspeicher zu installieren.
Übergeben --sslskipcertvalidation
während der Agentkonfiguration
./config.cmd/sh --sslskipcertvalidation
Hinweis
Es gibt Einschränkungen bei der Verwendung dieses Flags unter Linux und macOS
Die libcurl-Bibliothek auf Ihrem Linux- oder macOS-Computer muss mit OpenSSL, Weitere Details erstellt werden.
Git get sources fails with SSL certificate problem (Windows agent only)
Wir senden Befehlszeilen-Git als Teil des Windows-Agents. Wir verwenden diese Kopie von Git für alle zugehörigen Git-Vorgänge. Wenn Sie über ein selbst signiertes SSL-Zertifikat für Ihren lokalen TFS-Server verfügen, stellen Sie sicher, dass die Git konfiguriert wird, die wir geliefert haben, um dieses selbst signierte SSL-Zertifikat zu ermöglichen. Es gibt 2 Ansätze zur Lösung des Problems.
Legen Sie die folgende Git-Konfiguration auf globaler Ebene durch die Ausführung des Agents als Benutzer fest.
git config --global http."https://tfs.com/".sslCAInfo certificate.pem
Hinweis
Das Festlegen der Git-Konfiguration auf Systemebene ist für Windows nicht zuverlässig. Die Datei "system .gitconfig" wird mit der Kopie von Git gespeichert, die ersetzt wird, wenn der Agent auf eine neue Version aktualisiert wird.
Aktivieren von Git zum Verwenden von SChannel während der Konfiguration mit 2.129.0 oder höherer Version agent Pass
--gituseschannel
während der Agentkonfiguration./config.cmd --gituseschannel
Hinweis
Git SChannel hat mehr Einschränkungsanforderungen für Ihr selbst signiertes Zertifikat. Selbstsenden Zertifikat, das von IIS oder PowerShell generiert wurde, können möglicherweise nicht mit SChanel ausgeführt werden.
Arbeiten mit SSL-Clientzertifikat
IIS verfügt über eine SSL-Einstellung, die alle eingehenden Anforderungen an TFS erfordert, muss das Clientzertifikat zusätzlich zu den regulären Anmeldeinformationen präsentieren.
Wenn diese IIS-SSL-Einstellung aktiviert ist, müssen Sie den Versions-Agent verwenden oder oben verwenden 2.125.0
und diese zusätzlichen Schritte ausführen, um den Buildcomputer für Ihren TFS-Server zu konfigurieren.
Vorbereiten aller erforderlichen Zertifikatinformationen
- Zertifizierungszertifikate im
.pem
Format (Dies sollte den öffentlichen Schlüssel und die Signatur des Zertifizierungsstelle-Zertifikats enthalten, sie müssen das Stammzertifikat und alle Ihre Zwischenzertifikate in eine.pem
Datei einfügen) - Clientzertifikat im
.pem
Format (Dies sollte den öffentlichen Schlüssel und die Signatur des Clientzertifikats enthalten) - Clientzertifikat privater Schlüssel im
.pem
Format (Dies sollte nur den privaten Schlüssel des Clientzertifikats enthalten) - Clientzertifikatarchivpaket im
.pfx
Format (Dies sollte die Signatur, den öffentlichen Schlüssel und den privaten Schlüssel des Clientzertifikats enthalten) - Verwenden Sie
SAME
das Kennwort zum Schützen des privaten Clientschlüssels und des Clientzertifikatarchivpakets, da beide über den privaten Schlüssel des Clientzertifikats verfügen.
- Zertifizierungszertifikate im
Installieren von ZERTIFIZIERUNGszertifikaten in den Computerzertifikatspeicher
- Linux: OpenSSL-Zertifikatspeicher
- macOS: System- oder Benutzerschlüsselkette
- Windows: Windows Zertifikatspeicher
Übergeben
--sslcacert
, ,--sslclientcertkey
--sslclientcert
.--sslclientcertarchive
und--sslclientcertpassword
während der Agentkonfiguration..\config.cmd/sh --sslcacert ca.pem --sslclientcert clientcert.pem --sslclientcertkey clientcert-key-pass.pem --sslclientcertarchive clientcert-archive.pfx --sslclientcertpassword "mypassword"
Ihr Clientzertifikat-private Schlüsselkennwort wird sicher auf jeder Plattform gespeichert.
Linux: Encrypted with a symmetric key based on the machine ID macOS: macOS Keychain Windows: Windows Credential Store
Erfahren Sie mehr über die Unterstützung des Agent-Clientzertifikats.