Udostępnij przez


Podpisywanie pakietu aplikacji przy użyciu narzędzia SignTool

SignTool to narzędzie wiersza polecenia służące do cyfrowego podpisywania pakietu aplikacji lub pakietu przy użyciu certyfikatu. Certyfikat może zostać utworzony przez użytkownika (na potrzeby testowania) lub wystawiony przez firmę (na potrzeby dystrybucji). Podpisywanie pakietu aplikacji zapewnia użytkownikowi weryfikację, że dane aplikacji nie zostały zmodyfikowane po jego podpisaniu, a także potwierdzenie tożsamości użytkownika lub firmy, która ją podpisała. Narzędzie SignTool może podpisać zaszyfrowane lub niezaszyfrowane pakiety i pakiety aplikacji.

Ważne

Jeśli używasz programu Visual Studio do tworzenia aplikacji, zaleca się użycie kreatora programu Visual Studio do utworzenia i podpisania pakietu aplikacji. Aby uzyskać więcej informacji, zobacz Utworzenie pakietu aplikacji UWP za pomocą programu Visual Studio i Tworzenie pakietu aplikacji klasycznej z kodu źródłowego przy użyciu programu Visual Studio.

Aby uzyskać więcej informacji na temat podpisywania kodu i certyfikatów, zobacz Wprowadzenie do podpisywania kodu.

Wymagania wstępne

  • Spakowana aplikacja
    Aby dowiedzieć się więcej na temat ręcznego tworzenia pakietu aplikacji, zobacz Tworzenie pakietu aplikacji za pomocą narzędzia MakeAppx.exe.

  • Prawidłowy certyfikat podpisywania
    Aby uzyskać więcej informacji na temat tworzenia lub importowania prawidłowego certyfikatu podpisywania, zobacz Tworzenie lub importowanie certyfikatu na potrzeby podpisywania pakietów.

  • SignTool.exe
    Na podstawie ścieżki instalacji zestawu SDK jest to miejsce, w którym narzędzie SignTool znajduje się na komputerze z systemem Windows 10:

    • x86: C:\Program Files (x86)\Windows Kits\10\bin\<sdk w wersji>\x86\SignTool.exe
    • x64: C:\Program Files (x86)\Windows Kits\10\bin\<sdk w wersji>\x64\SignTool.exe

Korzystanie z narzędzia SignTool

Narzędzie SignTool może służyć do podpisywania plików, weryfikowania podpisów lub sygnatur czasowych, usuwania podpisów i nie tylko. W celu podpisania pakietu aplikacji skupimy się na poleceniu sign. Aby uzyskać pełne informacje na temat narzędzia SignTool, zobacz stronę dokumentacji narzędzia SignTool .

Określanie algorytmu skrótów

Jeśli używasz narzędzia SignTool do podpisywania pakietu aplikacji lub pakietu zbiorczego, algorytm skrótu używany w SignTool musi być tym samym algorytmem, który został użyty do spakowania aplikacji. Jeśli na przykład użyto MakeAppx.exe do utworzenia pakietu aplikacji z ustawieniami domyślnymi, należy określić algorytm SHA256 podczas korzystania z narzędzia SignTool , ponieważ jest to domyślny algorytm używany przez MakeAppx.exe.

Aby dowiedzieć się, który algorytm skrótu został użyty podczas pakowania aplikacji, wyodrębnij zawartość pakietu aplikacji i sprawdź plik AppxBlockMap.xml. Aby dowiedzieć się, jak rozpakować/wyodrębnić pakiet aplikacji, zobacz Wyodrębnianie plików z pakietu lub zestawu. Metoda skrótu znajduje się w elememencie BlockMap i ma następujący format:

<BlockMap xmlns="http://schemas.microsoft.com/appx/2010/blockmap"
HashMethod="http://www.w3.org/2001/04/xmlenc#sha256">

W tej tabeli przedstawiono każdą wartość HashMethod i odpowiadający mu algorytm skrótu:

Wartość HashMethod Algorytm skrótu
http://www.w3.org/2001/04/xmlenc#sha256 SHA256
http://www.w3.org/2001/04/xmldsig-more#sha384 SHA384 powiedział:
http://www.w3.org/2001/04/xmlenc#sha512 SHA512 powiedział:

Uwaga / Notatka

Ponieważ domyślny algorytm narzędzia SignTool to SHA1 (niedostępny w MakeAppx.exe), zawsze należy określić algorytm wyznaczania wartości skrótu podczas korzystania z narzędzia SignTool.

Podpisywanie pakietu aplikacji

Po spełnieniu wszystkich wymogów wstępnych i określeniu, który algorytm wyznaczania wartości skrótu został użyty do spakowania aplikacji, możesz ją podpisać.

Ogólna składnia wiersza polecenia podpisywania pakietu SignTool to:

SignTool sign [options] <filename(s)>

Certyfikat używany do podpisywania aplikacji musi być plikiem PFX lub być zainstalowany w magazynie certyfikatów.

Aby podpisać pakiet aplikacji przy użyciu certyfikatu z pliku pfx, użyj następującej składni:

SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.appx
SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.msix

Należy pamiętać, że /a opcja umożliwia narzędzie SignTool automatyczne wybieranie najlepszego certyfikatu.

Jeśli certyfikat nie jest plikiem pfx, użyj następującej składni:

SignTool sign /fd <Hash Algorithm> /n <Name of Certificate> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /n <Name of Certificate> <File Path>.msix

Alternatywnie można określić skrót SHA1 żądanego certyfikatu zamiast <nazwy certyfikatu> przy użyciu tej składni:

SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.msix

Aby uzyskać więcej przykładów, zobacz Używanie narzędzia SignTool do podpisywania pliku

Należy pamiętać, że niektóre certyfikaty nie używają hasła. Jeśli certyfikat nie ma hasła, pomiń hasło "/p <Hasło>" z przykładowych poleceń.

Po podpisaniu swojego pakietu aplikacji prawidłowym certyfikatem, jesteś gotowy, aby przesłać go do Sklepu. Aby uzyskać więcej wskazówek dotyczących przekazywania i przesyłania aplikacji do Sklepu, zobacz Przesyłanie aplikacji.