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 už vytvořili VSIX.
Získání podpisového certifikátu 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é od http://aka.ms/trustcertpartnersspolečnosti .
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.
Podepsání VSIX pomocí sign CLI
Nástroj VSIXSignTool je ve prospěch sign CLI (github.com) zastaralý. Tento nástroj se publikuje na NuGet jako nástroj dotnet v části Sign (nuget.org) a podporuje místní podepisování nebo podepisování cloudu azure Key Vault.
Pro místní podepisování podporuje rozhraní příkazového řádku podepisování certifikáty a privátní klíče uložené v libovolné kombinaci těchto umístění:
-
PFX
,P7B
neboCER
soubory - Importovaný do Správce certifikátů systému Windows
- Uložené 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í
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 by running
dotnet tool install sign --version <version> --global
, where<version>
is the latest available version under 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 cli sign cli a nainstalovat ho pomocí:
dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>
Příklad:
dotnet tool install --global --add-source D:\NuGetTools sign --version 99.0
Použití rozhraní příkazového řádku pro podepsání
Po instalaci je možné získat přístup k rozhraní příkazového řádku pro vývojáře v instanci PowerShellu 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 only supports SHA-256
, SHA-384
and SHA-512
as valid fingerprint algorithms. 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):
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"