Sdílet prostřednictvím


Podepisování balíčků VSIX

Před spuštěním v sadě Visual Studio není nutné podepsat sestavení rozšíření, ale je vhodné to udělat.

Přidání digitálního podpisu do balíčku VSIX zabezpečí vaše rozšíření a zabrání manipulaci. Během instalace instalační program VSIX zobrazí podpis a odkaz na certifikát. Pokud se obsah VSIX upraví bez aktualizace podpisu, instalační program upozorní pouze uživatele na neplatný podpis balíčku. V této příručce se předpokládá, že jste již vytvořiliVSIX .

Získat certifikát pro podepisování kódu

Platné certifikáty lze získat od veřejné certifikační autority, například:

Úplný seznam certifikačních autorit důvěryhodných systémem Windows lze získat také z http://aka.ms/trustcertpartners.

Pro účely testování můžete použít certifikáty vystavené svým držitelem. Balíčky VSIX podepsané pomocí certifikátů vydaných svým držitelem ale Visual Studio Marketplace nepřijímají. Přečtěte si další informace o generování certifikátů podepsaných svým držitelem pomocí rozhraní příkazového řádku .NET CLI.

Podepsání VSIX pomocí sign CLI

VSIXSignTool byl vyřazen ve prospěch nástroje Sign CLI (github.com). Tento nástroj je publikován na NuGet jako nástroj pro .NET v části Sign (nuget.org) a podporuje místní podepisování nebo podepisování pomocí cloudu Azure Key Vault.

Pro podepisování na místní úrovni podporuje Sign CLI certifikáty a privátní klíče uložené v libovolné kombinaci těchto umístění:

Instalace rozhraní příkazového řádku pro podepsání

  1. Otevřete instanci powershellu pro vývojáře.

  2. Ověřte, že nuget.org je přidaný a povolený jako zdroj NuGet.

    • Kontrola zdrojů pomocí dotnet nuget list source
    • Přidání NuGet.org jako zdroje pomocí dotnet nuget add source -n NuGet.org https://api.nuget.org/v3/index.json
  3. Nainstalujte Sign spuštěním dotnet tool install sign --version <version> --global, kde <version> je nejnovější dostupná verze v rámci Sign (nuget.org).

    • --global je volitelný a nainstaluje nástroj do výchozího umístění nástrojů .NET, které se automaticky přidá do proměnné prostředí PATH.

Offline instalace rozhraní příkazového řádku pro přihlášení

V izolovaných prostředích si můžete stáhnout nejnovější balíček NuGet Sign CLI a nainstalovat ho pomocí:

dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>

Například:

dotnet tool install --global --add-source D:\NuGetTools sign --version 99.0

Použití Sign CLI

Po instalaci lze ke Sign CLI přistupovat v instanci Developer PowerShell pomocí sign code <command> <options>. Rozpis možností najdete v tématu Reference k rozhraní příkazového řádku pro balíčky VSIX. Nápovědu můžete získat z příkazového řádku zadáním sign code -h.

Důležitý

Sign CLI podporuje jenom SHA-256, SHA-384a SHA-512 jako platné algoritmy otisku prstu. K získání otisků prstů můžete použít PowerShell: Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize

  • Podepisování pomocí souboru PFX pomocí otisku prstu SHA-256:
sign code certificate-store -cfp 80BB567B...52CB95D4C -cf "D:\Certs\f5ec6169345347a7cd2f83af662970d5d0bfc914.pfx" -d "My VSIX Signature" -t "http://timestamp.acs.microsoft.com/" "C:\Users\Contoso\Downloads\FingerSnapper2022.vsix"

Poznámka

Soubory PFX obsahují certifikát i privátní klíč používaný k podepisování a nevyhovují požadavkům fóra prohlížeče C/A pro rozšířené ověřování (EV) a podepisování bez EV. Doporučuje se používat pouze privátní klíče uložené v zařízení HSM (Hardened Secure Module) a přistupovat k nim pomocí zprostředkovatele kryptografických služeb (CSP).

  • Podepisování pomocí Microsoft Certificate Manageru a otisku prstu SHA512 (možnost-csp):
sign code certificate-store -cfp A87A60A6F...894559B98 -csp "Microsoft Software Key Storage Provider" -d "VSIX Signature" -t "http://timestamp.acs.microsoft.com/" "C:\Users\Contoso\Downloads\FingerSnapper2022.vsix"
  • Podepisování pomocí privátního klíče na usb disku (možnost-csp):
sign code certificate-store -cfp B113E82D...F5CF294BE0B -csp "eToken Base Cryptographic Provider" -d "VSIX Signature" -t "http://timestamp.acs.microsoft.com/" "C:\Users\Contoso\Downloads\FingerSnapper2022.vsix"
  • Podepisování pomocí usb disku pomocí konkrétního kontejneru klíčů (-csp a -k možností):
sign code certificate-store -cfp 15BB56B0...1ACB959D0 -csp "eToken Base Cryptographic Provider" -k "NuGet Signing.629c9149345347cd2f83af6f5ec70d5d0a7bf616" -d "VSIX Signature" -t "http://timestamp.acs.microsoft.com/" "C:\Users\Contoso\Downloads\FingerSnapper2022.vsix"