Kod imzalama sertifikanızı kendiniz oluşturun


Kod imzalama sertifikanızı kendiniz oluşturun
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.

Powershell ile kod imza sertifikası oluştur

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.

code signing certificate

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.

crt dosyası oluşturduk

Yani C:\ dizinimde "code_signing.crt" dosyası oluştu.

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.

Dijital imzalı exe

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.

Kendi İmza sertifikanızı oluşturun

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


25 Yorum Var
  1. Avatar for Zeki Gürsoy

Yorum Ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Captcha