Aracılığıyla paylaş


SignTool kullanarak uygulama paketi imzalama

SignTool , bir uygulama paketini veya paketini sertifikayla dijital olarak imzalamak için kullanılan bir komut satırı aracıdır. Sertifika kullanıcı tarafından oluşturulabilir (test amacıyla) veya bir şirket tarafından (dağıtım için) yayımlanabilir. Bir uygulama paketinin imzalanması, kullanıcıya uygulamanın verilerinin imzalandıktan sonra değiştirilmediğini doğrulamasını sağlarken, bunu imzalayan kullanıcının veya şirketin kimliğini de onaylar. SignTool , şifrelenmiş veya şifrelenmemiş uygulama paketlerini ve paketlerini imzalayabilir.

Önemli

Uygulamanızı geliştirmek için Visual Studio kullandıysanız, uygulama paketinizi oluşturmak ve imzalamak için Visual Studio sihirbazını kullanmanız önerilir. Daha fazla bilgi için bkz. Visual Studio ile UWP uygulamasını paketleme ve Visual Studio kullanarak kaynak koddan masaüstü uygulaması paketleme.

Genel olarak kod imzalama ve sertifikalar hakkında daha fazla bilgi için bkz. Kod İmzalama'ya Giriş.

Önkoşullar

  • Paketlenmiş bir uygulama
    Uygulama paketini el ile oluşturma hakkında daha fazla bilgi edinmek için bkz. MakeAppx.exe aracıyla uygulama paketi oluşturma.

  • Geçerli bir imzalama sertifikası
    Geçerli bir imzalama sertifikası oluşturma veya içeri aktarma hakkında daha fazla bilgi için bkz. Paket imzalama için sertifika oluşturma veya içeri aktarma.

  • SignTool.exe
    SDK yükleme yolunuz temelinde , SignTool'un Windows 10 bilgisayarınızda bulunduğu yerdir:

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

SignTool Kullanımı

SignTool dosyaları imzalamak, imzaları veya zaman damgalarını doğrulamak, imzaları kaldırmak ve daha fazlası için kullanılabilir. Bir uygulama paketini imzalamak için sign komutuna odaklanacağız. SignTool hakkında tam bilgi için SignTool başvuru sayfasına bakın.

Karma algoritmayı belirleme

Uygulama paketinizi veya paket grubunuzu imzalamak için SignTool kullanırken, SignTool'da kullanılan karma algoritması, uygulamanızı paketlemek için kullandığınız algoritmayla aynı olmalıdır. Örneğin, uygulama paketinizi varsayılan ayarlarla oluşturmak için MakeAppx.exe kullandıysanız,MakeAppx.exe tarafından kullanılan varsayılan algoritma olduğundan SignTool kullanırken SHA256 belirtmeniz gerekir.

Uygulamanızı paketleme sırasında hangi karma algoritmanın kullanıldığını öğrenmek için uygulama paketinin içeriğini ayıklayın ve AppxBlockMap.xml dosyasını inceleyin. Uygulama paketinin nasıl açacağınızı/ayıklayacağınızı öğrenmek için bkz. Paketten veya paketten dosya ayıklama. Karma yöntemi BlockMap öğesindedir ve şu biçime sahiptir:

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

Bu tabloda her HashMethod değeri ve karşılık gelen karma algoritması gösterilir:

HashMethod değeri Çakışım Algoritması
http://www.w3.org/2001/04/xmlenc#sha256 SHA256 Serisi
http://www.w3.org/2001/04/xmldsig-more#sha384 SHA384
http://www.w3.org/2001/04/xmlenc#sha512 SHA512

Uyarı

SignTool'un varsayılan algoritması SHA1 olduğundan (MakeAppx.exeiçinde kullanılamaz), SignTool kullanırken her zaman bir karma algoritması belirtmeniz gerekir.

Uygulama paketini imzalama

Tüm önkoşullara sahip olduktan ve uygulamanızı paketlemek için hangi karma algoritmanın kullanıldığını belirledikten sonra imzalamaya hazır olursunuz.

SignTool paket imzalama için genel komut satırı söz dizimi şöyledir:

SignTool sign [options] <filename(s)>

Uygulamanızı imzalamak için kullanılan sertifika bir .pfx dosyası veya bir sertifika deposunda yüklü olmalıdır.

Uygulama paketinizi .pfx dosyasındaki bir sertifikayla imzalamak için aşağıdaki söz dizimini kullanın:

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

Seçeneğinin /a otomatik olarak en iyi sertifikayı seçmesine izin verdiğine dikkat edin.

Sertifikanız bir .pfx dosyası değilse aşağıdaki söz dizimini kullanın:

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

Alternatif olarak, şu söz dizimini kullanarak Sertifika< Adı yerine >istenen sertifikanın SHA1 karması belirtebilirsiniz:

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

Daha fazla örnek için bkz. Dosyayı İmzalarken SignTool Kullanma

Bazı sertifikaların parola kullanmadığını unutmayın. Sertifikanızın parolası yoksa, örnek komutlardan "/p <Parolanız>" ifadesini atla.

Uygulama paketiniz geçerli bir sertifikayla imzalandıktan sonra paketinizi Mağaza'ya yüklemeye hazır olursunuz. Mağaza'ya uygulama yükleme ve gönderme hakkında daha fazla kılavuz için bkz. Uygulama gönderimleri.