Eğer kodlama biliyorsanız kendi yazılımlarınızı kendiniz oluşturabilirsiniz peki ama bu yazılım veya yazılımları internet ortamında paylaşmayı düşünüyorsanız bu durumda bir code signing certificate kullanmanız
faydalı olacaktır. Türkçeye Kod imzalama Sertifikası olarak çevrilmiş olan "code signing certificate" Kodların yazar tarafından imzalandığından beri değiştirilmediğini veya bozulmadığını doğrulayan, sertifika tabanlı dijital imza algoritmasıdır. Bu, kullanıcıların ve diğer yazılımların, yazılımın güvenilir olup olmayacağını belirlemelerine yardımcı olur.
Mesela Sordum.org a ait görünen bir yazılımı bir indirme (download) sitesinden indirdiniz bu yazılımın gerçekten Sordum tarafından kodlandığına nasıl emin olabilirsiniz ? belkide birisi aynı isimde bir exe yaptı ve içinde sisteminizi kullanılmaz hale getirecek bir zararlı yerleştirdi , İşte bu gibi durumlar için Kod İmzalama (Code signing) mekanizması yardımınıza koşmakta ve yazılımın kim tarafından kodlandığı bilgisini size sunmaktadır. İnternet üzerinde biraz araştırma yaptığınızda mesela antivirüs veya SSL sağlayıcı firmaların bu sertifikaları sattığını görürsünüz. bunların fiyatları da genelde 150 - 750 $ yıllıktır. Peki ama kendimiz bir sertifika oluşturamazmıyız işte aşağıdaki makalemizde bu sorunun cevabını bulacaksınız.
Ücretsiz Kendinize ait Kod imzalama sertifikanızı oluşturun
Eğer en az Windows 8.1 , Windows Server 2012, Windows Server 2012 R2 yada daha üst sürüm bir windows işletim sistemi kullanıyorsanız bu durumda kendi sertifikanızı Powershell ile oluşturmanız gerekecektir. Eğer windows 7 veya daha düşük bir sürüm kullanıyorsanız bu durumda "MakeCert" aracını kullanmanız gerekecektir. Aşağıdaki anlatım Windows 10 üzerinden yapılacaktır. Powershell i çalıştıralım ve sırası ile aşağıdaki komutları sırası ile uygulayalım
1. Powershell konsolunu Yönetici yetkileri ile çalıştırın (Çok önemli) ve Sertifikayı oluşturmak için aşağıdaki komutu kullanın (websiteniz.com yerine kendi web sayfanızı yazınız)
$cert = New-SelfSignedCertificate -DnsName www.websiteniz.com -Type CodeSigning -CertStoreLocation Cert:\CurrentUser\My
2. Sertifikanız için bir şifre belirleyin , Koddaki Şifre belirle kısmına bir şifre giriniz.
$CertPassword = ConvertTo-SecureString -String "Şifre belirle" -Force –AsPlainText
3. Pfx olarak dışa aktaralım (Export)
Export-PfxCertificate -Cert "cert:\CurrentUser\My\$($cert.Thumbprint)" -FilePath "d:\selfsigncert.pfx" -Password $CertPassword
Komutları sırası ile uyguladığınızda Powershell konsolunda aşağıdaki gibi bir çıktı oluşacaktır.
Bendeki Windows 10 da üstteki 3. komuttan sonra F dizinimde "selfsigncert.pfx" dosyası oluştu . İşlemi diğer domain içinde tekrarladım ve aşağıdaki resimdede gördüğünüz üzere .pfx uzantılı code signing certicificate lerim oluşmuş oldu.
Eğer sizde bir şekilde üstteki adımlarda hata verirse (Ki Powershell asla düzgün çalışan bir konsol değildir , olmadık hatalar türetir). Bu durumda izleyebileceğiniz yöntem .crt dosyasını oluşturup bunu .pfx e dönüştürmek olmalıdır.
Powershell de Crt dosyası oluşturma kodu (Privat key olmadan export)
Üstteki ilk iki kodda hata almanız neredeyse imkansız ama 3. export kodu bazen sorun çıkartabiliyor bu durumda aşağıdaki kodu uygulayın
Export-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing.crt
Resimdeki gibi bir çıktı verecektir.
Yani C:\ dizinimde "code_signing.crt" dosyası oluştu.
Eğer oluşan .Crt dosyasını Trusted publisher olarak import etmek isterseniz aşağıdaki kodu kullanabilirsiniz.
Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\TrustedPublisher
Elinizdeki bu .Crt veya .Pfx dosyalarını yazılımları kodladıktan sonra imzalamak için kullanabilirsiniz . Eğer Shared bir hosttaysanız ve bir SSL sertifikanız yoksa Hostunuz ile bağlantı kurduğunuzda size .Pfx dosyası oluşturmayacaklardır sebebi ise bu dosyayı oluşturabilmeleri için bir SSL Satın alma koşulu öne sürmeleridir. Üstteki yöntemle Ücretsiz kendi sertifikamızı oluşturmuş olduk Eğer elinizde bir domainde yoksa domain yerine local hostunuzun İp adresini kullanmayı deneyin (192.168.1 ...). Artık oluşturduğunuz exe lere sağ tıklayıp özellikler dediğinizde Dijital imza sekmesi belirecek ve herkes bu yazılımın aynı kişi tarafından kodlandığını anlayacaktır.
Code signing certificate ler sahte virüs uyarılarının bir kısmını azaltsada tamamen ortadan kaldırmaz. Eğer kendinize ait bir SSL sertifikanız varsa aşağıdaki kodları kullanarak Apache serverde .crt veya .pfx dosyalarını edinebilirsiniz.
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt
Üstteki Powershell kodlarını ufak bir exe yaptık böylece konsolda sadece domain adını ve kendi belirlediğiniz bir şifreyi girince , masaüstünüze otomatik olarak bir Self signed certificate oluşturacaktır.
Aşağıdaki küçük exe dosyasını indirip zipten çıkartıp çalıştırabilirsiniz. Aşağıdaki yazılım Powershell in sadece belirli sürümlerinde düzgün çalışacaktır.
Not : Aşağıdaki yazılım Windows 11 ve Windows 10 da çalışmaktadır. Alt sürümlerde çalışabilmesi için Powershell sürümünüzü güncellemeniz gerekecektir.
- Freeware Shareware gibi kavramlar nedir Burada
- bat dosyasını .exe ye çevirelim (adım adım resimli) Burada
- Powershell scriptlerini .exe yapalım Burada
- Registry dosyalarını kolayca vbs veya bat a çevirelim Burada
- vbs dosyasını .exe yapmak için ücretsiz programlar Burada
- Autoit te VBscriptleri exe halinde paketlemek Burada
- Autohotkey kodlarını exe haline getirelim Burada
- Bir yazılıma Kod sertifikası nasıl eklenir Burada
10 Ağustos 2019 Tarihli başlık güncellendi
Eline sağlık , artık O serttifikayı ile virüs uyarısı almadığın sürece kullanabilirsin.
Harika çok basitçe oluşturdum sertifikayı ve exeye eklemeyi başardım.
Faydalı olmasını dilerim , Selamlar.
@Velociraptor Teşekkürler elinize sağlık harika bir anlatım.
Teşekürler Murat , Fındık hakkında birşeyleri merak edenler için bilgilendirici olmuş , iyi bayramlar.
Web Link ... bağlantısı sorunun nitelikli cevabıdır.
Ürün kalitesi de iyiyse yorulmaya değer, siz patoz dedikleri makinaya veriyormusunuz Fındıkları ?
Evet iyi gidiyor ama yorgunluk en üst seviye de ..... Bu ara da imza oluşturmak için iki tane free yazılım mevcut.Bunlar
1.İmaZER 1.1
2.SoloSign Free
Selam Hakan , bu konuda çok istek var kısmetse bayramdan sonra exe ye sertifika gömmek konusunda bir makale kaleme almayı düşünüyorum. Yorumun için teşekürler
yazılımlara digital sertifikaları ücretli zannediyordum. bu konuyu açmanız çok iyi olmuş. bende bir tane oluşturdum. fakat .exe'ye bunu nasıl ilave edeceğim. o konuya da açıklık getirirseniz minnettar kalırım.
Teşekürler Murat , Umarım fındık hasadı iyi gidiyordur. Selamlar
Evet bu önemli bir konu.....Teşekkürler Böyle teknik bilgilerin/makalelerinin devamı dileği ile.....