Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SignTool kullanılırken en yaygın hata türleri dahilidir ve genellikle aşağıdakine benzer:
SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2147024885 / 0x8007000B)
Hata kodu 0x80080206 (APPX_E_CORRUPT_CONTENT) gibi 0x8008 ile başlıyorsa, imzalanan paket geçersizdir. Bu tür bir hata alırsanız paketi yeniden oluşturmanız ve SignTool'u yeniden çalıştırmanız gerekir.
SignTool'da sertifika hatalarını ve filtrelemeyi göstermek için kullanılabilecek bir hata ayıklama seçeneği vardır. Hata ayıklama özelliğini kullanmak için, /debug seçeneğini doğrudan arkasına sign yerleştirin ve ardından tam SignTool komutunu kullanın.
SignTool sign /debug [options]
Daha yaygın bir hata 0x8007000B. Bu tür bir hata için olay günlüğünde daha fazla bilgi bulabilirsiniz.
Olay günlüğünde daha fazla bilgi bulmak için:
- Eventvwr.msc dosyasını çalıştırın
- Olay günlüğünü açın: Olay Görüntüleyicisi (Yerel) -> Uygulama ve Hizmet Günlükleri -> Microsoft -> Windows -> AppxPackagingOM -> Microsoft-Windows-AppxPackaging/Operational
- En son hata olayını bulma
İç hata 0x8007000B genellikle şu değerlerden birine karşılık gelir:
| Olay Kimliği | Örnek olay dizesi | Öneri |
|---|---|---|
| Yüz elli | hata 0x8007000B: Uygulama bildirimi yayımcı adı (CN=Contoso), imzalama sertifikasının konu adıyla (CN=Contoso, C=ABD) eşleşmelidir. | Uygulama bildirimi yayımcı adı, imzalamanın konu adıyla tam olarak eşleşmelidir. |
| 151 | hata 0x8007000B: Belirtilen imza karması yöntemi (SHA512), uygulama paketi blok eşlemesinde (SHA256) kullanılan karma yöntemle eşleşmelidir. | /fd parametresinde belirtilen hashAlgorithm yanlış. Uygulama paketi blok haritasıyla eşleşen hashAlgorithm kullanarak SignTool'u yeniden çalıştırın (uygulama paketini oluşturmak için kullanılır) |
| 152 | hata 0x8007000B: Uygulama paketi içeriğinin blok eşlemesinde doğrulanması gerekir. | Uygulama paketi bozuk ve yeni bir blok haritası oluşturmak için yeniden oluşturulması gerekiyor. Uygulama paketi oluşturma hakkında daha fazla bilgi için bkz. MakeAppx.exe aracıyla uygulama paketi oluşturma |
Bir diğer yaygın hata da 0x80080057. Windows üzerinde SignTool aracını kullanarak Taşınabilir Yürütülebilir Dosya (PE) dosyasını imzalamaya çalıştığınızda aşağıdaki sorunlarla karşılaşabilirsiniz:
4 gigabayt (GB) veya daha büyük bir PE dosyasının imzalanmaması. İmzalama denemesinde "geçersiz parametre (0x80080057)" hata iletisi alırsınız.
4 GB'tan büyük dosyalar için, SignTool dosyayı başarıyla imzalasa bile oluşturulan karma doğru olmayabilir.
Uyarı
Bu özellikle .cat dosyaları için geçerlidir.
Bu sorun .exe, .sysgibi PE dosyaları için oluşur. Bu sorun, PE üst bilgisinde görüntü boyutunu belirten bir ULONG değişkeni nedeniyle oluşur. (Görüntü boyutu Vista ve önceki sürümler gibi alt düzey işletim sistemleri için 2 GB'tır.) Bu, 1996'dan bu yana bir tasarım sınırlamasıdır. Bu değerin üst sınırı, .exe ve .sysgibi PE dosyaları için 4 GB'tır. .cat dosyaları genellikle imzalanabilir olsa da, oluşturulan iç özet doğru olmayabilir.
Bu sorunu geçici olarak çözmek için imzalamaya çalıştığınız pe dosyalarının 4 GB'tan az olduğundan emin olun. Bu, geriye dönük uyumluluk kısıtlamaları nedeniyle PE biçiminin düzeltme planlanmadan bilinen bir tasarım sınırlamasıdır.
Uyarı
Bu sorun SignTool'a özgü değildir. PE üst bilgisinin tasarımı, hangi aracın kullanıldığına bakılmaksızın Windows 7 ve sonraki Windows sürümleri için 4 GB ile sınırlıdır.
Sıkça Sorulan Sorular (SSS)
S1: Windows'da dijital imza (ve zaman damgası karşı imzası) için geçerli, resmi dosya boyutu sınırı nedir?
A1: .exe ve .sysgibi PE dosyaları için, imzalama için maksimum dosya boyutu 4 GB'tır.
S2: büyük dosyaları imzalama özelliği en yüksek olan Windows Server 2016 gibi belirli bir Windows sürümü var mı?
Y2: Hayır, sorun Windows tüm sürümlerini etkiler.
S3: Signtool'un 64 bit sürümünün bu işlevsellik için desteği 32 bit sürümünden daha mı iyi?
Y: Hayır, SignTool'un 64 bit sürümü 32 bit sürümle aynı değerleri kullanır. Bu nedenle, sorun 64 bit olarak kalır.
S4: Windows'un 32 bit sürümünü kullanan müşteriler, SignTool'un 64 bit sürümünü kullanarak imzalanan dosyaları kullanmaya çalışırlarsa sorunlarla karşılaşabilecekler mi?
Y: Hayır. Ancak, hangi SignTool sürümünün kullanıldığına bakılmaksızın sınırlamalar kalır.
S5: Tamamen farklı bir imzalama aracı mı yoksa yöntemi mi kullanmalıyız?
Y: Evet. Azure Güvenilen İmzalama Microsoft yönetilen kod imzalama hizmetidir ve kendi sertifikalarınızı yönetmek için önerilen modern alternatiftir. Sertifika yaşam döngüsü yönetimini işler ve CI/CD işlem hatları ile tümleşir. Azure Key Vault, bulutta depolanan sertifikalarla imzalamak için başka bir seçenektir. Çevrimdışı veya self servis senaryolarında SignTool standart araç olarak kalır.