Jak dotnetup ověřuje stahování

Note

dotnetup je ve veřejné verzi Preview. Jeho funkce a chování se můžou před obecnou dostupností změnit.

dotnetup ověří sady .NET SDK a běhová prostředí, které stáhne, než je rozbalí. Typ ověření závisí na tom, odkud sestavení pochází.

Vydaná sestavení

Pro vydané buildy dotnetup používá řetězec důvěryhodnosti, který začíná podepsaným manifestem vydané verze:

  1. dotnetupstáhne manifesty vydání .NET. Tyto manifesty jsou index vydání a soubor releases.json pro každý kanál.
  2. dotnetup ověří oddělený podpis kódu (.p7s soubor) každého manifestu. Pokud podpis chybí nebo není platný, příkaz selže.
  3. Ověřený manifest obsahuje hodnotu hash SHA-512 každého archivu.
  4. dotnetup stáhne archiv a porovná jeho hodnotu hash SHA-512 s hodnotou hash v manifestu. Pokud se hodnoty hash neshoduje, příkaz selže a dotnetup neextrahuje archiv.

Vzhledem k tomu, že podepsaný manifest ukotvuje hash každého archivu, dotnetup neověřuje samostatný podpis pro každý archiv.

Ověření podpisu také online kontroluje stav zneplatnění certifikátu. Povolte přístup k požadovaným koncovým bodům pro zneplatnění certifikátu. Pokud síť tyto kontroly blokuje, ověření selže a dotnetup zastaví instalaci, i když je podpis platný.

Vypršení platnosti manifestu

Manifesty vydání obsahují čas vypršení platnosti. dotnetup zkontroluje, jestli platnost manifestu nevypršela, a to ani v případě, že jsou platné hodnoty hash podpisu a archivu. Také zkontroluje, jestli byl manifest podepsán před vypršením jeho platnosti.

Nesprávné systémové hodiny nebo manifest s vypršenou platností mohou způsobit selhání ověření. Pokyny k obnovení najdete v tématu Platnost manifestu vydání vypršela.

Důvěryhodné certifikáty

U podpisů manifestu a jejich časových razítek používá dotnetup důvěryhodné kořenové certifikáty, které jsou součástí nástroje. Nepřidá certifikáty z úložiště důvěryhodnosti operačního systému do těchto kořenových certifikátů.

Přidání certifikátu do úložiště důvěryhodnosti operačního systému neznamená, že dotnetup bude důvěřovat podpisu manifestu vydání z řetězce daného certifikátu. Podpis musí splňovat zásady ověřování dotnetup a řetězit k přibalenému důvěryhodnému kořenovému certifikátu.

Denní a neuvedené předběžné sestavení

Denní buildy a předběžné verze, které nejsou v manifestu podepsané verze, pocházejí z jiného kanálu. Tyto buildy mají soubor hash SHA-512, ale žádný podpis kódu. U těchto sestavení dotnetup ověřuje pouze hodnotu hash SHA-512.

dotnetup používá tuto cestu při instalaci:

  • Denní kanál, například daily nebo 10.0-daily.
  • Plně zadaná předběžná verze, například 10.0.100-preview.4.25216.37, která není v manifestu vydání.

Před zahájením instalace dotnetup se zobrazí toto upozornění:

⚠ Daily builds are not code-signed. Only the SHA-512 hash is verified.

Další informace o denních buildech najdete v tématu Použití náhledu a denních buildů.

Blokovat nepodepsaná stahování

Správci můžou blokovat instalaci buildů, které nejsou digitálně podepsané. Pokud tato zásada platí, dotnetup se stále instalují vydaná sestavení, ale instalace denních a neuvedených předběžných sestavení selžou.

Windows

BlockUnsignedDownloads Vytvořte hodnotu registru jako REG_DWORD hodnotu s nenulovou hodnotou pod HKLM\SOFTWARE\Policies\Microsoft\dotnet\Dotnetup. Například spusťte tyto příkazy v relaci PowerShellu se zvýšenými oprávněními:

$key = 'HKLM:\SOFTWARE\Policies\Microsoft\dotnet\Dotnetup'
New-Item -Path $key -Force | Out-Null
New-ItemProperty -Path $key -Name 'BlockUnsignedDownloads' -PropertyType DWord -Value 1 -Force | Out-Null

Pokud chcete zásadu vymazat, odstraňte hodnotu nebo ji nastavte na 0.

Linux a macOS

Vytvořte soubor /etc/dotnet/dnup-block-unsigned-downloads. Na obsahu souboru nezáleží. Příklady:

sudo mkdir -p /etc/dotnet
sudo touch /etc/dotnet/dnup-block-unsigned-downloads

Pokud chcete zásady vymazat, odstraňte soubor.

Blokované instalace

Když zásady zablokují instalaci, dotnetup zobrazí chybu podobnou následující zprávě:

An IT policy on this machine requires code-signed downloads. Installing daily or unsigned prerelease builds of SDK <version> is blocked. Choose a released version, or have an administrator clear the policy ...

Pokud chcete pokračovat, nainstalujte vydanou verzi nebo požádejte správce, aby zásadu vymazal.

Spustitelný soubor dotnetup

Skripty get-dotnetup pro stažení ověřují stažený dotnetup spustitelný soubor pomocí souboru kontrolního součtu SHA-512. Další informace najdete v tématu Začínáme s dotnetup.

Viz také