Podpisywanie pakietów VSIX
Zestawy rozszerzeń nie muszą być podpisane, zanim będą mogły działać w programie Visual Studio, ale dobrym rozwiązaniem jest wykonanie tej czynności.
Dodanie podpisu cyfrowego do pakietu VSIX zabezpiecza rozszerzenie i uniemożliwia manipulowanie. Podczas instalacji instalator VSIX wyświetla podpis i link do certyfikatu. Jeśli zawartość pliku VSIX jest modyfikowana bez aktualizowania podpisu, instalator ostrzega tylko użytkownika o nieprawidłowym podpisie pakietu. W tym przewodniku założono, że już utworzono VSIX.
Uzyskiwanie certyfikatu podpisywania kodu
Prawidłowe certyfikaty można uzyskać z publicznego urzędu certyfikacji, takiego jak:
- Certum
- Comodo
- DigiCert
- GlobalSign
- SSL.com
Pełną listę urzędów certyfikacji zaufanych przez system Windows można również uzyskać z http://aka.ms/trustcertpartners.
Do celów testowych można używać certyfikatów wystawionych samodzielnie. Jednak pakiety VSIX podpisane przy użyciu certyfikatów wystawionych samodzielnie nie są akceptowane przez witrynę Visual Studio Marketplace. Dowiedz się więcej o generowaniu certyfikatów z podpisem własnym przy użyciu interfejsu wiersza polecenia platformy .NET.
Podpisywanie pliku VSIX przy użyciu Sign CLI
Narzędzie VSIXSignTool jest przestarzałe na rzecz interfejsu wiersza polecenia podpisywania (github.com). To narzędzie jest publikowane w NuGet jako narzędzie .NET pod Sign (nuget.org) i obsługuje podpisywanie lokalne lub podpisywanie w chmurze za pomocą usługi Azure Key Vault.
W przypadku podpisywania lokalnego Sign CLI obsługuje certyfikaty i klucze prywatne przechowywane w dowolnej kombinacji tych lokalizacji:
- pliki
PFX
,P7B
lubCER
- Zaimportowane do Menedżera certyfikatów systemu Windows
- Przechowywane na urządzeniu USB, z dostępem za pośrednictwem dostawcy usług kryptograficznych (CSP)
Instalacja Sign CLI
Otwórz wystąpienie programu PowerShell dla deweloperów.
Sprawdź, czy nuget.org jest dodawany i włączony jako źródło NuGet.
- Sprawdzanie źródeł przy użyciu
dotnet nuget list source
- Dodawanie NuGet.org jako źródła przy użyciu
dotnet nuget add source -n NuGet.org https://api.nuget.org/v3/index.json
- Sprawdzanie źródeł przy użyciu
Zainstaluj Sign, uruchamiając
dotnet tool install sign --version <version> --global
, gdzie<version>
jest najnowszą dostępną wersją w ramach Sign (nuget.org).-
--global
jest opcjonalny i instaluje narzędzie w domyślnej lokalizacji narzędzi platformy .NET, która jest automatycznie dodawana do zmiennej środowiskowej PATH.
-
Instalacja narzędzia wiersza poleceń do podpisywania w trybie offline
W przypadku środowisk izolowanych możesz pobrać najnowszy pakiet NuGet dla Sign CLI i zainstalować go przy użyciu:
dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>
Na przykład:
dotnet tool install --global --add-source D:\NuGetTools sign --version 99.0
Korzystanie z Sign CLI
Po zainstalowaniu, do Sign CLI można uzyskać dostęp w sesji Developer PowerShell przy użyciu sign code <command> <options>
. Aby uzyskać podział opcji, zobacz Dokumentacja interfejsu wiersza polecenia podpisywania dla pakietów VSIX. Możesz uzyskać pomoc z wiersza polecenia, wpisując sign code -h
.
Ważny
CLI obsługuje tylko SHA-256
, SHA-384
i SHA-512
jako prawidłowe algorytmy odcisków palców. Za pomocą programu PowerShell możesz pobrać odciski palców przy użyciu: Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize
- Podpisywanie przy użyciu pliku PFX przy użyciu odcisku palca 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"
Notatka
Pliki PFX zawierają zarówno certyfikat, jak i klucz prywatny używany do podpisywania i nie są zgodne z wymaganiami forum przeglądarki C/A na potrzeby rozszerzonej weryfikacji (EV) i podpisywania innych niż EV. Zaleca się używanie tylko kluczy prywatnych przechowywanych na urządzeniu HSM (Hardened Secure Module) i uzyskiwanie do nich dostępu przy użyciu dostawcy usług kryptograficznych (CSP).
- Podpisywanie przy użyciu Menedżera certyfikatów firmy Microsoft i odcisk palca SHA512 (opcja-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"
- Podpisywanie przy użyciu klucza prywatnego na dysku USB (opcja-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"
- Podpisywanie przy użyciu dysku USB przy użyciu określonego kontenera kluczy (opcje-csp i -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"
Powiązana zawartość
- Dystrybucja rozszerzeń programu Visual Studio
- dokumentacja interfejsu wiersza polecenia podpisywania dla pakietów VSIX