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:
- Certum
- comodo
- DigiCert
- GlobalSign
- SSL.com
Ú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í:
- soubory
PFX
,P7B
neboCER
- Importovaný do Správce certifikátů systému Windows
- Uloženo v zařízení USB s přístupem prostřednictvím poskytovatele kryptografických služeb (CSP)
Instalace rozhraní příkazového řádku pro podepsání
Otevřete instanci powershellu pro vývojáře.
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
- Kontrola zdrojů pomocí
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-384
a 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"
Související obsah
- Doručování rozšíření sady Visual Studio
- Referenční informace k příkazu CLI pro podepisování balíčků VSIX