Megosztás a következőn keresztül:


Az ügynök futtatása önaláírt tanúsítvánnyal

Azure DevOps Server 2022 – Azure DevOps Server 2019

Ez a témakör azt ismerteti, hogyan futtathat saját üzemeltetésű ügynököt önaláírt tanúsítvánnyal.

Feljegyzés

Ez a cikk az ügynök 2.x és újabb verzióira vonatkozik.

SSL-kiszolgálótanúsítvány használata

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.

Az ügynök diagnosztikai naplója a következőt mutatja:

[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

Ez a hiba azt jelezheti, hogy a TFS-kiszolgálón használt kiszolgálói tanúsítványt a buildelési gép nem megbízható. Győződjön meg arról, hogy telepíti az önaláírt SSL-kiszolgáló tanúsítványát az operációsrendszer-tanúsítványtárolóba.

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

Néhány parancs futtatásával egyszerűen ellenőrizheti, hogy a tanúsítvány megfelelően lett-e telepítve. Jónak kell lennie, amíg az SSL kézfogása helyesen befejeződött, még akkor is, ha 401-et kap a kéréshez.

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)

Ha valamilyen okból nem tudja sikeresen telepíteni a tanúsítványt a gép tanúsítványtárolójába, például: nincs engedélye, vagy testreszabott Linux-gépen van. Az ügynök 2.125.0-s vagy újabb verziója figyelmen kívül hagyhatja az SSL-kiszolgáló tanúsítványérvényesítési hibáját.

Fontos

Ez nem biztonságos, és nem ajánlott, javasoljuk, hogy telepítse a tanúsítványt a gépi tanúsítványtárolóba.

Továbbítás --sslskipcertvalidation ügynökkonfiguráció során

./config.cmd/sh --sslskipcertvalidation

Feljegyzés

A jelző használata Linuxon és macOS rendszeren korlátozott
A Linux- vagy macOS-gépen futó libcurl-kódtárat az OpenSSL- és további részletekkel kell felépíteni

A Git get-források SSL-tanúsítványhiba miatt meghiúsulnak (csak Windows-ügynök esetén)

A Windows-ügynök részeként szállítjuk a parancssori Gitet. Ezt a Git-példányt az összes Git-hez kapcsolódó művelethez használjuk. Ha önaláírt SSL-tanúsítvánnyal rendelkezik a helyszíni TFS-kiszolgálóhoz, mindenképpen konfigurálja a szállított Gitet, hogy engedélyezze az önaláírt SSL-tanúsítványt. A probléma megoldásának két megközelítése van.

  1. Állítsa be a következő git-konfigurációt globális szinten az ügynök felhasználóként való futtatásával.

    git config --global http."https://tfs.com/".sslCAInfo certificate.pem
    

    Feljegyzés

    A rendszerszintű Git-konfiguráció beállítása Windows rendszeren nem megbízható. A rendszer .gitconfig fájlját a becsomagolt Git másolata tárolja, amelyet az ügynök új verzióra való frissítésekor lecserélünk.

  2. A Git használatának SChannel engedélyezése a 2.129.0-s vagy újabb verziójú ügynök pass --gituseschannel verziójával való konfigurálás során az ügynökkonfiguráció során

    ./config.cmd --gituseschannel
    

    Feljegyzés

    A Git SChannel több korlátozási követelményt is biztosít az önaláírt tanúsítványhoz. Előfordulhat, hogy az IIS vagy a PowerShell-parancs által létrehozott önállóan énekelt tanúsítvány nem képes az SChannelre.

SSL-ügyféltanúsítvány használata

Az IIS olyan SSL-beállítással rendelkezik, amely megköveteli az Azure DevOps Server vagy a TFS felé irányuló összes bejövő kérést, és a hagyományos hitelesítő adatok mellett ügyféltanúsítványt is be kell mutatnia.

Ha az IIS SSL-beállítás engedélyezve van, a verzióügynököt kell használnia 2.125.0 vagy felülemelnie, és ezeket a további lépéseket kell követnie ahhoz, hogy konfigurálhassa a buildelési gépet az Azure DevOps- vagy TFS-kiszolgálón.

  • Az összes szükséges tanúsítványinformáció előkészítése

    • CA-tanúsítvány(ok) formátuma .pem (Ennek tartalmaznia kell a hitelesítésszolgáltatói tanúsítvány nyilvános kulcsát és aláírását, a legfelső szintű hitelesítésszolgáltatói tanúsítványt és az összes köztes hitelesítésszolgáltatói tanúsítványt egy .pem fájlba kell helyeznie)
    • Ügyféltanúsítvány formátuma .pem (Ennek tartalmaznia kell az ügyféltanúsítvány nyilvános kulcsát és aláírását)
    • Az ügyféltanúsítvány titkos kulcsa formátuma .pem (Ennek csak az ügyféltanúsítvány titkos kulcsát kell tartalmaznia)
    • Ügyféltanúsítvány archív csomag formátuma .pfx (Ennek tartalmaznia kell az ügyféltanúsítvány aláírását, nyilvános kulcsát és titkos kulcsát)
    • Jelszó használata SAME az ügyféltanúsítvány titkos kulcsának és az ügyféltanúsítvány archív csomagjának védelméhez, mivel mindkettő rendelkezik ügyféltanúsítvány titkos kulcsával
  • Ca-tanúsítvány(ok) telepítése a gépi tanúsítványtárolóba

    • Linux: OpenSSL tanúsítványtároló
    • macOS: Rendszer- vagy felhasználói kulcskarika
    • Windows: Windows-tanúsítványtároló
  • Pass --sslcacert, --sslclientcert, --sslclientcertkey. --sslclientcertarchive és --sslclientcertpassword az ügynökkonfiguráció során.

    .\config.cmd/sh --sslcacert ca.pem --sslclientcert clientcert.pem --sslclientcertkey clientcert-key-pass.pem --sslclientcertarchive clientcert-archive.pfx --sslclientcertpassword "mypassword"
    

    Az ügyféltanúsítvány titkos kulcsjelszója biztonságosan tárolódik minden platformon.

    Linux: Encrypted with a symmetric key based on the machine ID
    macOS: macOS Keychain
    Windows: Windows Credential Store
    

További információ az ügynök ügyféltanúsítvány-támogatásáról.