Spuštění agenta s certifikátem podepsaným svým držitelem
Azure DevOps Server 2022 – Azure DevOps Server 2019
Toto téma vysvětluje, jak spustit agenta v místním prostředí s certifikátem podepsaným svým držitelem.
Poznámka:
Tento článek se týká verzí agenta 2.x a novějších.
Práce s certifikátem serveru SSL
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.
Diagnostický protokol agenta ukazuje:
[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
Tato chyba může znamenat, že serverový certifikát, který jste použili na serveru TFS, není počítač sestavení důvěryhodný. Ujistěte se, že do úložiště certifikátů operačního systému nainstalujete certifikát ssl podepsaný svým držitelem.
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
Spuštěním několika příkazů můžete snadno ověřit, jestli je certifikát správně nainstalovaný. Měli byste být v pořádku, pokud ssl handshake dokončil správně, i když dostanete 401 pro požadavek.
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)
Pokud nějak nemůžete úspěšně nainstalovat certifikát do úložiště certifikátů vašeho počítače z různých důvodů, například: nemáte oprávnění nebo jste na přizpůsobeném počítači s Linuxem. Agent verze 2.125.0 nebo vyšší má možnost ignorovat chybu ověření certifikátu serveru SSL.
Důležité
To není bezpečné a nedoporučujeme, důrazně doporučujeme nainstalovat certifikát do úložiště certifikátů počítače.
Předání --sslskipcertvalidation
během konfigurace agenta
./config.cmd/sh --sslskipcertvalidation
Poznámka:
Používání tohoto příznaku v Linuxu a macOS je omezené.
Knihovna libcurl na počítači s Linuxem nebo macOS musí být sestavená pomocí OpenSSL, další podrobnosti.
Selhání získání zdrojů Gitu s problémem s certifikátem SSL (jenom agent Windows)
Git příkazového řádku dodáváme jako součást agenta Windows. Tuto kopii Gitu používáme pro všechny operace související s Gitem. Pokud máte certifikát SSL podepsaný svým držitelem pro místní server TFS, nezapomeňte nakonfigurovat Git, který jsme odeslali, aby povoloval certifikát SSL podepsaný svým držitelem. Existují dva přístupy k vyřešení problému.
Nastavte následující konfiguraci Gitu na globální úrovni spuštěním agenta jako uživatel.
git config --global http."https://tfs.com/".sslCAInfo certificate.pem
Poznámka:
Nastavení konfigurace Git na úrovni systému není ve Windows spolehlivé. Systémový soubor .gitconfig se uloží s kopií Gitu, kterou jsme zabalili, což se nahradí při každém upgradu agenta na novou verzi.
Povolení použití
SChannel
Gitu během konfigurace agenta--gituseschannel
verze 2.129.0 nebo vyšší verze./config.cmd --gituseschannel
Poznámka:
Git SChannel má více požadavků na omezení vašeho certifikátu podepsaného svým držitelem. Certifikát, který je generovaný službou IIS nebo příkazem PowerShellu, nemusí být schopen s nástrojem SChannel.
Práce s klientským certifikátem SSL
Služba IIS má nastavení SSL, které vyžaduje všechny příchozí požadavky na Azure DevOps Server nebo TFS, musí kromě běžných přihlašovacích údajů prezentovat klientský certifikát.
Pokud je toto nastavení PROTOKOLU SSL služby IIS povolené, musíte použít 2.125.0
nebo vyšší verzi agenta a postupovat podle těchto dodatečných kroků, abyste mohli nakonfigurovat počítač sestavení na serveru Azure DevOps nebo TFS.
Příprava všech požadovaných informací o certifikátu
- Certifikáty certifikační autority ve
.pem
formátu (Musí obsahovat veřejný klíč a podpis certifikátu certifikační autority, musíte vložit kořenový certifikát ca a všechny certifikáty zprostředkující certifikační autority do jednoho.pem
souboru). - Klientský certifikát ve
.pem
formátu (Měl by obsahovat veřejný klíč a podpis klientského certifikátu) - Privátní klíč klientského certifikátu ve
.pem
formátu (Tento klíč by měl obsahovat pouze privátní klíč klientského certifikátu) - Archivní balíček klientského certifikátu ve
.pfx
formátu (Měl by obsahovat podpis, veřejný klíč a privátní klíč klientského certifikátu). - Ochrana privátního klíče klientského certifikátu a balíčku archivu klientských certifikátů pomocí
SAME
hesla, protože oba mají privátní klíč klientského certifikátu.
- Certifikáty certifikační autority ve
Instalace certifikátů certifikační autority do úložiště certifikátů počítače
- Linux: Úložiště certifikátů OpenSSL
- macOS: Systémový nebo uživatelský klíček
- Windows: Úložiště certifikátů Systému Windows
Pass
--sslcacert
,--sslclientcert
,--sslclientcertkey
.--sslclientcertarchive
a--sslclientcertpassword
během konfigurace agenta..\config.cmd/sh --sslcacert ca.pem --sslclientcert clientcert.pem --sslclientcertkey clientcert-key-pass.pem --sslclientcertarchive clientcert-archive.pfx --sslclientcertpassword "mypassword"
Heslo privátního klíče klientského certifikátu je bezpečně uloženo na každé platformě.
Linux: Encrypted with a symmetric key based on the machine ID macOS: macOS Keychain Windows: Windows Credential Store
Přečtěte si další informace o podpoře klientských certifikátů agenta.