EXE imzalamak, Windows yazılımınıza Authenticode dijital imzası eklemektir. İmzalı dosyada yayıncı olarak şirketinizin adı görünür ve dosya imzadan sonra değiştirilirse imza bozulur. Bu rehberde Microsoft'un signtool aracıyla adım adım imzalamayı anlatıyoruz.
Gerekenler
- Kod imzalama sertifikası: OV veya EV. Ne olduğunu bilmiyorsanız önce Kod imzalama sertifikası nedir? yazısını okuyun. EXE imzalamaya uygun sertifikaları EXE imzalama sertifikası sayfasında listeledik.
- Anahtara erişim: 2023'ten beri anahtar bir USB token'da ya da bulut HSM'de durur; token sürücüsünü veya bulut istemcisini (örneğin Certum için SimplySign) kurmanız gerekir.
- signtool.exe: Windows SDK ile gelir. Kurulumdan sonra genellikle
C:\Program Files (x86)\Windows Kits\10\bin\<sürüm>\x64\signtool.exeyolundadır.
1. Sertifikanın görünür olduğunu kontrol edin
Token takılıyken ya da bulut istemcisine giriş yapmışken sertifika, Windows sertifika deposunda (Kişisel) görünür. PowerShell'de şu komutla listeleyebilirsiniz:
Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert
Çıktıdaki Thumbprint değerini not edin; imzalarken sertifikayı bununla seçeceğiz.
2. Dosyayı imzalayın ve zaman damgası ekleyin
signtool sign /sha1 <THUMBPRINT> /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 /v "Kurulum.exe"
/sha1: Hangi sertifikayla imzalanacağı (thumbprint)./fd SHA256: Dosya özeti algoritması. SHA-1 artık kullanılmamalı./trve/td: RFC 3161 zaman damgası sunucusu ve algoritması. Sertifika sağlayıcınızın zaman damgası adresini kullanmanız önerilir.
Zaman damgası, sertifikanızın süresi dolduktan sonra da imzanın geçerli kalmasını sağlar; bu adımı atlamayın.
3. İmzayı doğrulayın
signtool verify /pa /v "Kurulum.exe"
"Successfully verified" çıktısını görmelisiniz. Dosyaya sağ tıklayıp Özellikler → Dijital İmzalar sekmesinden de yayıncı adını ve zaman damgasını görebilirsiniz.
DLL, MSI ve diğer dosyalar
Aynı komut .dll, .msi, .cab, .sys ve .cat dosyalarında da çalışır. Birden çok dosyayı tek komutla imzalayabilirsiniz:
signtool sign /sha1 <THUMBPRINT> /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 bin\*.dll Kurulum.msi
Kurulum paketi hazırlarken önce içindeki .exe ve .dll dosyalarını, en son da kurulum dosyasının kendisini imzalayın.
Derleme hattında (CI/CD) imzalama
Token tabanlı sertifikalar bir bilgisayara bağlı olduğundan otomatik derleme sunucularında kullanmak zordur. Bulut tabanlı anahtarlar bu iş için daha uygundur: imzalama, derleme sunucusundan bulut hizmetine yapılan istekle gerçekleşir. Seçenekleri Bulut kod imzalama rehberi yazımızda anlattık.
Sık karşılaşılan hatalar
"No certificates were found that met all the given criteria"
Token takılı değil, bulut istemcisinde oturum açık değil ya da thumbprint yanlış. 1. adımdaki komutla sertifikanın görünüp görünmediğini kontrol edin.
Zaman damgası hatası
Kurum ağınız zaman damgası sunucusuna erişimi engelliyor olabilir. Başka bir sağlayıcının RFC 3161 adresini deneyin.
İmzaladım ama SmartScreen hâlâ uyarı veriyor
Bu normaldir: SmartScreen itibarı, imzalı dosyalar indirildikçe zamanla oluşur. Ayrıntılar SmartScreen uyarısı rehberimiz içinde.
Hangi sertifikayla başlamalı?
Token ve kargo ile uğraşmak istemiyorsanız Certum Standard Code Signing in the Cloud bulutta imzalama sunar. Bilinen bir markayla OV için DigiCert Code Signing, Windows sürücüsü de imzalayacaksanız DigiCert EV Code Signing veya Sectigo EV Code Signing gibi bir EV sertifikası gerekir. Tüm seçenekler: tüm kod imzalama sertifikaları.

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