Sie können den Agent mit einem selbstsigniertem Zertifikat ausführen.

Azure DevOps Server 2022 – Azure DevOps Server 2019

In diesem Thema wird erläutert, wie Sie einen selbst gehosteten Agent mit einem selbst signierten Zertifikat ausführen.

Hinweis

Dieser Artikel bezieht sich auf Agent-Versionen 2.x und neuer.

Arbeiten mit SSL-Serverzertifikaten

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.

Agent-Diagnoseprotokolle zeigt folgendes an:

[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 Serverzertifikat, das Sie auf Ihrem TFS-Server verwendet haben, vom Buildcomputer nicht vertrauenswürdig ist. Stellen Sie sicher, dass Sie Ihr selbstsigniertes SSL-Serverzertifikat im Zertifikatspeicher des Betriebssystems 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 problemlos überprüfen, ob das Zertifikat ordnungsgemäß installiert wurde, indem Sie einige Befehle ausführen. Sie sollten gut sein, solange der SSL-Handshake korrekt abgeschlossen ist, auch wenn Sie einen 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 aus verschiedenen Gründen nicht erfolgreich im Zertifikatspeicher Ihres Computers installieren können, z. B.: Sie haben keine Berechtigung oder befinden sich auf einem angepassten Linux-Computer. Die Agent-Version 2.125.0 oder höher kann einen SSL-Serverzertifikatüberprüfungsfehler ignorieren.

Wichtig

Dies ist nicht sicher und nicht empfohlen. Es wird dringend empfohlen, das Zertifikat in Ihrem Computerzertifikatspeicher zu installieren.

Während der Agentenkonfiguration --sslskipcertvalidation übergeben

./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 erstellt werden. Weitere Details

Fehler beim Abrufen von Git-Quellen mit SSL-Zertifikatproblem (nur Windows-Agent)

Wir liefern Befehlszeilen-Git als Teil des Windows-Agents aus. Wir verwenden diese Kopie von Git für alle Git-bezogenen Vorgänge. Wenn Sie über ein selbstsigniertes SSL-Zertifikat für Ihren lokalen TFS-Server verfügen, müssen Sie das von uns gelieferte Git so konfigurieren, dass dieses selbstsignierte SSL-Zertifikat zugelassen wird. Es gibt 2 Ansätze, um das Problem zu lösen.

  1. 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 unter Windows nicht zuverlässig. Die Gitconfig-Systemdatei wird mit der Kopie von Git gespeichert, die wir gepackt haben, die ersetzt wird, wenn der Agent auf eine neue Version aktualisiert wird.

  2. Aktivieren Sie Git für die Verwendung von SChannel während der Konfiguration mit Agent-Version 2.129.0 oder höher. Übergeben Sie --gituseschannel während der Konfiguration des Agenten

    ./config.cmd --gituseschannel
    

    Hinweis

    Git SChannel erfordert mehr Einschränkungen für Ihr selbstsigniertes Zertifikat. Ein von IIS oder per PowerShell-Befehl generiertes selbstsigniertes Zertifikat ist möglicherweise nicht mit SChannel kompatibel.

Arbeiten mit SSL-Clientzertifikaten

IIS verfügt über eine SSL-Einstellung, die vorschreibt, dass alle eingehenden Anfragen an Azure DevOps Server oder TFS zusätzlich zu den regulären Anmeldeinformationen ein Client-Zertifikat vorweisen müssen.

Wenn diese IIS-SSL-Einstellung aktiviert ist, müssen Sie den Agenten der Version 2.125.0 oder höher verwenden und die folgenden zusätzlichen Schritte ausführen, um den Computer für Ihren Azure DevOps- oder TFS-Server zu konfigurieren.

  • Vorbereiten aller erforderlichen Zertifikatinformationen

    • CA-Zertifikat(e) im .pem-Format (Dies sollte den öffentlichen Schlüssel und die Signatur des CA-Zertifikats enthalten. Sie müssen das Stamm-CA-Zertifikat und alle Ihre Zwischenzertifikate in eine .pem-Datei packen.)
    • Client-Zertifikat im Format .pem (Dies sollte den öffentlichen Schlüssel und die Signatur des Client-Zertifikats enthalten.)
    • Privater Schlüssel des Client-Zertifikats im Format .pem (Dies sollte nur den privaten Schlüssel des Client-Zertifikats enthalten.)
    • Archivpaket des Client-Zertifikats im Format .pfx (Dieses sollte die Signatur, den öffentlichen Schlüssel und den privaten Schlüssel des Client-Zertifikats enthalten.)
    • Verwenden Sie SAME das Kennwort zum Schützen des privaten Clientzertifikatschlüssels und des Clientzertifikatarchivpakets, da beide über den privaten Schlüssel des Clientzertifikats verfügen.
  • Installieren von Zertifizierungsstellenzertifikaten im Computerzertifikatspeicher

    • Linux: OpenSSL-Zertifikatspeicher
    • macOS: System- oder Benutzerschlüsselbund
    • Windows: Windows-Zertifikatspeicher
  • --sslcacert, --sslclientcert, --sslclientcertkey weitergeben. --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"
    

    Das Kennwort für den privaten Schlüssel Ihres Clientzertifikats wird auf jeder Plattform sicher 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 von Agent-Clientzertifikaten.