Menandatangani paket aplikasi menggunakan SignTool

SignTool adalah alat baris perintah yang digunakan untuk menandatangani paket aplikasi atau bundel secara digital dengan sertifikat. Sertifikat dapat dibuat oleh pengguna (untuk tujuan pengujian) atau dikeluarkan oleh perusahaan (untuk distribusi). Menandatangani paket aplikasi memberi pengguna verifikasi bahwa data aplikasi belum dimodifikasi setelah ditandatangani sambil juga mengonfirmasi identitas pengguna atau perusahaan yang menandatanganinya. SignTool dapat menandatangani paket dan bundel aplikasi terenkripsi atau tidak terenkripsi.

Penting

Jika Anda menggunakan Visual Studio untuk mengembangkan aplikasi, disarankan agar Anda menggunakan wizard Visual Studio untuk membuat dan menandatangani paket aplikasi Anda. Untuk informasi selengkapnya, lihat Mengemas aplikasi UWP dengan Visual Studio dan Mengemas aplikasi desktop dari kode sumber menggunakan Visual Studio.

Untuk informasi selengkapnya tentang penandatanganan kode dan sertifikat secara umum, lihat Pengantar Penandatanganan Kode.

Prasyarat

  • Aplikasi yang dipaketkan
    Untuk mempelajari selengkapnya tentang membuat paket aplikasi secara manual, lihat Membuat paket aplikasi dengan alat MakeAppx.exe.

  • Sertifikat penandatanganan yang valid
    Untuk informasi selengkapnya tentang membuat atau mengimpor sertifikat penandatanganan yang valid, lihat Membuat atau mengimpor sertifikat untuk penandatanganan paket.

  • SignTool.exe
    Berdasarkan jalur penginstalan SDK Anda, di sinilah SignTool berada di PC Windows 10 Anda:

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

Menggunakan SignTool

SignTool dapat digunakan untuk menandatangani file, memverifikasi tanda tangan atau tanda waktu, menghapus tanda tangan, dan banyak lagi. Untuk tujuan penandatanganan paket aplikasi, kami akan fokus pada perintah tanda tangan . Untuk informasi lengkap tentang SignTool, lihat halaman referensi SignTool .

Menentukan algoritma hash

Saat menggunakan SignTool untuk menandatangani paket atau bundel aplikasi Anda, algoritma hash yang digunakan di SignTool harus merupakan algoritma yang sama dengan yang Anda gunakan untuk mengemas aplikasi Anda. Misalnya, jika Anda menggunakan MakeAppx.exe untuk membuat paket aplikasi dengan pengaturan default, Anda harus menentukan SHA256 saat menggunakan SignTool karena itulah algoritma default yang digunakan oleh MakeAppx.exe.

Untuk mengetahui algoritma hash mana yang digunakan saat mengemas aplikasi Anda, ekstrak konten paket aplikasi dan periksa file AppxBlockMap.xml. Untuk mempelajari cara membongkar/mengekstrak paket aplikasi, lihat Mengekstrak file dari paket atau bundel. Metode hash berada dalam elemen BlockMap dan memiliki format ini:

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

Tabel ini memperlihatkan setiap nilai HashMethod dan algoritma hash yang sesuai:

Nilai HashMethod Algoritme Hash
http://www.w3.org/2001/04/xmlenc#sha256 SHA256
http://www.w3.org/2001/04/xmldsig-more#sha384 SHA384
http://www.w3.org/2001/04/xmlenc#sha512 SHA512

Catatan

Karena algoritma default SignTool adalah SHA1 (tidak tersedia di MakeAppx.exe), Anda harus selalu menentukan algoritma hash saat menggunakan SignTool.

Menandatangani paket aplikasi

Setelah Anda memiliki semua prasyarat dan Anda telah menentukan algoritma hash mana yang digunakan untuk mengemas aplikasi, Anda siap untuk menandatanganinya.

Sintaks baris perintah umum untuk penandatanganan paket SignTool adalah:

SignTool sign [options] <filename(s)>

Sertifikat yang digunakan untuk menandatangani aplikasi Anda harus berupa file .pfx atau diinstal di penyimpanan sertifikat.

Untuk menandatangani paket aplikasi Anda dengan sertifikat dari file .pfx, gunakan sintaks berikut:

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

Perhatikan bahwa opsi ini /a memungkinkan SignTool untuk memilih sertifikat terbaik secara otomatis.

Jika sertifikat Anda bukan file .pfx, gunakan sintaks berikut:

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

Atau, Anda dapat menentukan hash SHA1 dari sertifikat yang diinginkan alih-alih <Nama Sertifikat> menggunakan sintaks ini:

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

Untuk contoh selengkapnya, lihat Menggunakan SignTool untuk Menandatangani File

Perhatikan bahwa beberapa sertifikat tidak menggunakan kata sandi. Jika sertifikat Anda tidak memiliki kata sandi, hilangkan "/p <Kata Sandi> Anda" dari perintah sampel.

Setelah paket aplikasi Anda ditandatangani dengan sertifikat yang valid, Anda siap untuk mengunggah paket Anda ke Store. Untuk panduan selengkapnya tentang mengunggah dan mengirimkan aplikasi ke Store, lihat Pengiriman aplikasi.