Kod İmzalama Sertifikaları Artık Çok Daha Uygun! — EV ve OV Kod İmzalama sertifikalarında özel kampanya fiyatları!
Anasayfa İletişim
Rehberler

Kod İmzalama Sertifikası ile Program Nasıl İmzalanır?

Kod İmzalama sertifikası ile program imzalama rehberi. Windows EXE, MSI, DLL dosyalarını SignTool ile nasıl imzalarsınız? Başlangıçtan sonuca adım adım anlatım.

4 dk okuma

Yazdığınız programı kullanıcılarınıza güvenle dağıtmak istiyorsanız, kod imzalama sertifikası ile dijital olarak imzalamanız gerekir. Bu rehberde, sıfırdan başlayarak bir Windows programını nasıl imzalayacağınızı anlattık.

Kod İmzalama Nedir ve Neden Gereklidir?

Kod İmzalama, yazılım dosyalarınıza dijital bir imza ekleyerek dosyanın sizin tarafınızdan oluşturulduğunu ve dağıtımdan sonra değiştirilmediğini kanıtlama işlemidir. İmzalama yapıldığında:

  • Windows "Bilinmeyen yayıncı" uyarısı yerine şirket/geliştirici adınız görünür
  • SmartScreen güvenlik filtresinden sorunsuz geçer (EV sertifika ile anında)
  • Antivirüs yazılımları dosyanızı daha az şüpheli bulur
  • Kullanıcılarınız yazılımınıza güvenir

Gerekli Araçlar

AraçAçıklamaNereden?
Windows SDKSignTool aracını içerirMicrosoft Developer
Kod İmzalama SertifikasıEV veya OV sertifikaKodImzalama.com
Cloud İstemciSimplySign/KeyLocker/CodeSignTrustSertifika sağlayıcınız

Adım 1: Windows SDK Kurulumu

SignTool, Windows SDK ile birlikte gelir. Yalnızca "Windows SDK Signing Tools" bileşenini kurmanız yeterlidir:

# SDK kurulumu sonrası SignTool konumu:
# C:\Program Files (x86)\Windows Kits\10\bin\10.0.xxxxx.0\x64\signtool.exe

# PATH'e ekleme (PowerShell - Admin)
$sdkPath = "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64"
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$sdkPath", "User")

Adım 2: Sertifikanızı Yapılandırın

Cloud sertifikanız aktif olduktan sonra, ilgili platformun istemcisini kurun:

Certum SimplySign için:

  1. SimplySign Desktop uygulamasını kurun
  2. Certum hesabınızla giriş yapın
  3. Mobil uygulamadan onay verin
  4. Sertifika otomatik olarak Windows sertifika deposuna yüklenir

DigiCert KeyLocker için:

  1. DigiCert One istemcisini kurun
  2. API anahtarınızı ve istemci sertifikanızı yapılandırın
  3. smctl aracı ile PKCS11 kütüphanesini kaydedin

Adım 3: Sertifika Parmak İzini Bulun

# PowerShell ile sertifika listesi
Get-ChildItem Cert:\CurrentUser\My | Format-List Subject, Thumbprint, NotAfter

# Çıktı örneği:
# Subject   : CN=Şirket Adınız, O=Şirket Adınız, L=İstanbul, C=TR
# Thumbprint: A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2
# NotAfter  : 28.03.2027 00:00:00

Thumbprint değerini not alın, imzalama komutunda kullanacaksınız.

Adım 4: Dosyayı İmzalayın

# Temel imzalama komutu
signtool sign /sha1 A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2 /tr http://timestamp.digicert.com /td sha256 /fd sha256 /v myapp.exe

# Parametre açıklamaları:
# /sha1     : Sertifika parmak izi (thumbprint)
# /tr       : RFC 3161 timestamp sunucusu URL
# /td sha256: Timestamp digest algoritması
# /fd sha256: Dosya digest algoritması
# /v        : Verbose (detaylı çıktı)

Yaygın Timestamp Sunucuları

SağlayıcıTimestamp URL
DigiCerthttp://timestamp.digicert.com
Sectigohttp://timestamp.sectigo.com
Certumhttp://time.certum.pl
GlobalSignhttp://timestamp.globalsign.com/tsa/r6advanced1

Adım 5: İmzayı Doğrulayın

# İmza doğrulama
signtool verify /pa /v myapp.exe

# Başarılı çıktı:
# Verifying: myapp.exe
# Signature Index: 0 (Primary Signature)
# Hash of file (sha256): 1234...
# Signing Certificate Chain:
#     CN=CA Root
#         CN=CA Intermediate
#             CN=Şirket Adınız
# The signature is timestamped: 28 Mar 2026 10:30:00
# Timestamp Verified by: CN=DigiCert Timestamp
# Successfully verified: myapp.exe

Birden Fazla Dosya İmzalama

# PowerShell ile toplu imzalama
$thumbprint = "A1B2C3D4E5F6..."
$timestamp = "http://timestamp.digicert.com"
$files = Get-ChildItem -Path ".\build\output" -Include *.exe,*.dll,*.msi -Recurse

foreach ($file in $files) {
    Write-Host "Imzalaniyor: $($file.Name)"
    signtool sign /sha1 $thumbprint /tr $timestamp /td sha256 /fd sha256 $file.FullName
}

Write-Host "Toplam $($files.Count) dosya imzalandi."

Sıkça Sorulan Sorular (FAQ)

İmzalama sırasında hata alıyorum, ne yapmalıyım?

En sık karşılaşılan hata "No certificates were found" hatasıdır. Bu, cloud istemcinin çalışmadığı veya sertifikanın Windows deposuna yüklenmediği anlamına gelir. Cloud platformunuzun istemcisinin aktif olduğundan emin olun ve gerekirse yeniden giriş yapın.

SHA-1 mi SHA-256 mı kullanmalıyım?

Kesinlikle SHA-256 kullanın. SHA-1 güvenlik açısından zayıftır ve Windows 10+ sistemlerde SHA-1 ile imzalanmış dosyalar uyarı alabilir. Tüm modern imzalamalarda /fd sha256 ve /td sha256 parametrelerini kullanın.

Timestamp neden önemli?

Timestamp olmadan, sertifikanız süresi dolduğunda tüm imzalarınız geçersiz olur. Timestamp ile imzalama zamanı kaydedilir ve sertifika süresi dolsa bile imzalar geçerli kalır. Her zaman timestamp ekleyin!

Dual signing (SHA-1 + SHA-256) yapmam gerekir mi?

Windows 7 ve altını desteklemeniz gerekmiyorsa dual signing gerekli değildir. Modern dağıtımlarda yalnızca SHA-256 yeterlidir.

Bu yazıyı paylaş
Yazar

Ali Yiğit

Önerilen Kod İmzalama Sertifikaları

Tüm Ürünler
CODESIGNING DigiCert

DigiCert Kod İmzalama

DigiCert OV Kod İmzalama. Dünyanın en güvenilir CA'sından Authenticode, Java JAR, Office VBA desteği

$480,00 /yıl
Detaylar
EVCODESIGNING DigiCert

DigiCert EV Kod İmzalama

DigiCert EV Kod İmzalama. SmartScreen anında itibar, WHQL portal erişimi, kernel-mode driver imzalam

$650,00 /yıl
Detaylar
CODESIGNING GlobalSign

GlobalSign Kod İmzalama for HSM

GlobalSign Kod İmzalama for HSM sertifikası ile kendi FIPS 140-2 uyumlu HSM donanımınız veya mevcut

$255,00 /yıl
Detaylar

Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Yorum Yaz