Udostępnij za pośrednictwem


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 utworzono już plik VSIX.

Uzyskiwanie certyfikatu podpisywania kodu

Prawidłowe certyfikaty można uzyskać z publicznego urzędu certyfikacji, takiego jak:

Pełną listę urzędów certyfikacji zaufanych przez system Windows można również uzyskać z http://aka.ms/trustcertpartnerswitryny .

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 na temat generowania certyfikatów z podpisem własnym przy użyciu interfejsu wiersza polecenia platformy .NET.

Podpisywanie pliku VSIX przy użyciu interfejsu wiersza polecenia podpisywania

Narzędzie VSIXSignTool zostało uznane za przestarzałe na rzecz interfejsu wiersza polecenia podpisywania (github.com). To narzędzie jest publikowane w usłudze NuGet jako narzędzie dotnet w obszarze Sign (nuget.org) i obsługuje podpisywanie lokalne lub podpisywanie w chmurze usługi Azure Key Vault.

W przypadku podpisywania lokalnego interfejs wiersza polecenia obsługuje certyfikaty i klucze prywatne przechowywane w dowolnej kombinacji tych lokalizacji:

  • PFX, lub P7BCER pliki
  • Zaimportowane do Menedżera certyfikatów systemu Windows
  • Przechowywane na urządzeniu USB z dostępem za pośrednictwem dostawcy usług kryptograficznych (CSP)

Instalowanie interfejsu wiersza polecenia podpisywania

  1. Otwórz wystąpienie programu PowerShell dla deweloperów.

  2. 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 polecenia dotnet nuget add source -n NuGet.org https://api.nuget.org/v3/index.json
  3. Zainstaluj znak, uruchamiając polecenie dotnet tool install sign --version <version> --global, gdzie <version> jest najnowszą dostępną wersją w obszarze Podpisywanie (nuget.org).

    • --global jest opcjonalne i instaluje narzędzie w domyślnej lokalizacji narzędzi platformy .NET, która jest automatycznie dodawana do zmiennej środowiskowej PATH.

Instalacja interfejsu wiersza polecenia podpisywania w trybie offline

W przypadku środowisk izolowanych możesz pobrać najnowszy pakiet NuGet interfejsu wiersza polecenia podpisywania 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 interfejsu wiersza polecenia podpisywania

Po zainstalowaniu interfejs wiersza polecenia podpisywania można uzyskać dostęp w wystąpieniu programu PowerShell dla deweloperów przy użyciu polecenia sign code <command> <options>. Aby uzyskać podział opcji, zobacz Sign CLI Reference for VSIX Packages (Dokumentacja interfejsu wiersza polecenia podpisywania pakietów VSIX).

Ważne

Interfejs wiersza polecenia podpisywania obsługuje SHA-256tylko algorytmy odcisków palców , SHA-384i SHA-512 jako prawidłowe. Za pomocą programu PowerShell można 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"

Uwaga

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 (-csp i -k opcje):
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"