SignTool.exe, Microsoft Windows SDK ile birlikte gelen ve dosyaları dijital olarak imzalamak, zaman damgası eklemek ve imzayı doğrulamak için kullanılan komut satırı aracıdır. Bu rehberde EXE, DLL ve MSI dosyalarını SignTool ile nasıl imzalayacağınızı adım adım anlatıyoruz.
Gereksinimler
SignTool ile imzalama yapmak için aşağıdakilere ihtiyacınız var:
- Windows SDK veya Visual Studio: SignTool.exe'yi içerir
- Kod İmzalama Sertifikası: PFX dosyası, USB Token veya Cloud HSM
- Yönetici yetkisi: Bazı işlemler için gerekebilir
Adım 1: SignTool'un Konumunu Bulun
SignTool genellikle şu dizinde bulunur:
C:\Program Files (x86)\Windows Kits\10\bin\10.0.xxxxx.0\x64\signtool.exe
PATH'e eklemek için:
set PATH=%PATH%;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64
Adım 2: Sertifikayı Yükleyin
PFX dosyası ile: PFX dosyanız varsa, Windows Certificate Store'a yükleyin:
certutil -importpfx -user My sertifika.pfx
USB Token ile: Token'ın sürücülerini yükleyin (SafeNet, YubiKey vb.) ve token'ı takın. Sertifika otomatik olarak Windows Certificate Store'da görünür.
Adım 3: Dosyayı İmzalayın
Temel İmzalama Komutu
signtool sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "uygulama.exe"
PFX Dosyası ile İmzalama
signtool sign /f sertifika.pfx /p "sifre123" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "uygulama.exe"
Belirli Sertifikayı Seçerek İmzalama
signtool sign /sha1 SERTIFIKA_THUMBPRINT /tr http://timestamp.digicert.com /td sha256 /fd sha256 "uygulama.exe"
Birden Fazla Dosyayı Topluca İmzalama
signtool sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a *.exe *.dll *.msi
Adım 4: İmzayı Doğrulayın
signtool verify /pa /v "uygulama.exe"
Başarılı doğrulama çıktısında Successfully verified: uygulama.exe mesajını görmelisiniz.
SignTool Parametreleri Referans Tablosu
| Parametre | Açıklama | Örnek |
|---|---|---|
/f | PFX dosya yolu | /f cert.pfx |
/p | PFX şifresi | /p "mypass" |
/sha1 | Sertifika thumbprint | /sha1 ABC123... |
/a | Otomatik en iyi sertifikayı seç | /a |
/fd | Dosya hash algoritması | /fd sha256 |
/tr | RFC 3161 timestamp URL | /tr http://timestamp.digicert.com |
/td | Timestamp hash algoritması | /td sha256 |
/d | Açıklama (description) | /d "My App" |
/du | Açıklama URL | /du https://example.com |
/v | Verbose (detaylı çıktı) | /v |
Yaygın Timestamp Sunucuları
| Sağlayıcı | URL |
|---|---|
| DigiCert | http://timestamp.digicert.com |
| Sectigo | http://timestamp.sectigo.com |
| GlobalSign | http://timestamp.globalsign.com/tsa/r6advanced1 |
| Certum | http://time.certum.pl |
Yaygın Hatalar ve Çözümleri
"SignTool Error: No certificates were found" hatası
Sertifika Windows Store'a yüklenmemiş veya özel anahtar eksik. certmgr.msc açarak sertifikanın "Personal" altında bulunduğunu doğrulayın.
"Error: SignerSign() failed" hatası
Genellikle PFX şifresi yanlış veya sertifika kod imzalama amacına uygun değil. Sertifikanızın "Code Signing" EKU (Extended Key Usage) alanına sahip olduğunu kontrol edin.
Timestamp hatası
Timestamp sunucusuna erişilemiyor olabilir. Farklı bir timestamp URL deneyin veya internet bağlantınızı kontrol edin.
Sık Sorulan Sorular
SignTool ücretsiz mi?
Evet, SignTool Windows SDK'nın bir parçasıdır ve ücretsizdir. Ancak imzalama için geçerli bir kod imzalama sertifikası satın almanız gerekir.
SHA-1 mi yoksa SHA-256 mı kullanmalıyım?
2026 itibarıyla SHA-256 zorunludur. SHA-1 desteği birçok platform tarafından kaldırılmıştır. Her zaman /fd sha256 /td sha256 parametrelerini kullanın.
Yorumlar
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Yorum Yaz