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.
Á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.
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) formátuma
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.