in

PFX dosyaları hakkında – DEV Community




PFX nedir?

PFX dosya formatı temel olarak “PKCS #12” olarak bilinen standartın öncülüdür. Bu standart, birden fazla kriptografik objenin bir dosyada kullanılmasını sağlamaktadır. İçerisinde tek bir sertfikayı barındıran diğer sertifikalardan en büyük farkı tam olarak budur. Bu standartın genellikle kullanılan kullanım şekli bir sertifika zinciri ‘nin sertifikaları ile birlikte “özel anahtar” barındırmasıdır. Bu dosya standartı hakkında bilmemiz gereken bir başka özellik de şifreli ve imzalı olabilmesidir. Açık kaynak kodlu openssl uygulamasının bu standardı kullanarak işlem yapması için pkcs12 parametresi kullanılmaktadır.



OpenSSL ile PFX işlemleri

OpenSSL üzerinde PFX işlemleri içerisindeki sertifikaları ve anahtarları ayırma işlemleridir.

Bir PFX dosyası içindeki özel anahtar’ın çıkartılması (sertifikaların çıkartılmaması) için aşağıdaki komut kullanılmaktadır. Anahtar dosyası örnekte .key olarak gösterilmiştir fakat bazı durumlarda .pem olarak da kullanılabilmektedir.

openssl pkcs12 -in tekdosya.pfx -nocerts -out ozelanahtar.key -nodes
Enter fullscreen mode

Exit fullscreen mode

Bir PFX dosyası içindeki sertifikaların çıkartılması (anahtarların çıkartılmaması) için aşağıdaki komut kullanılmaktadır. Sertifika dosyası örnekte .crt olarak gösterilmiştir fakat bazı durumlarda .pem olarak da kullanılabilmektedir.

openssl pkcs12 -in tekdosya.pfx -nokeys -out sertifikalar.crt
Enter fullscreen mode

Exit fullscreen mode



PFX’teki özel anahtarlar

PFX dosyasından yukarıda anlatılan yöntem ile çıkartılan özel anahtar PKCS#8 standartına uygundur. Yani aşağıdaki gibi başlayan bir dosya gözükmektedir:

-----BEGIN PRIVATE KEY-----
Enter fullscreen mode

Exit fullscreen mode

-----BEGIN ENCRYPTED PRIVATE KEY-----
Enter fullscreen mode

Exit fullscreen mode

Oysa ki bazı durumlarda elimizde PKCS#1 standartına uygun RSA şifreleme ile oluşturulmuş bir anahtar olması gerekebilir. Bu gibi durumda yukarıdaki komut yerine aşağıdaki gibi bir komut çalıştırılması gerekmektedir:

openssl pkcs12 -in tekdosya.pfx -nodes -nocerts | openssl rsa -out ozelanahtar.key
Enter fullscreen mode

Exit fullscreen mode

Bu şekilde oluşturulan özel anahtar PKCS#1 standartına uygun ve aşağıdaki gibi başlayan bir dosya olarak RSA şifreleme yöntemi ile sunulacaktır.

----------BEGIN RSA PRIVATE KEY-----
Enter fullscreen mode

Exit fullscreen mode



Parola konuları

PFX dosyasının kullanılabilmesi için çoğu zaman parola koruması bulunmaktadır. Normal şartlarda OpenSSL sizden bu bilgileri talep etmektedir. Fakat tek komut ile yapılması istenirse aşağıdaki parametreler kullanılabilmektedir. İlk parametre ile var olan PFX dosyasının parolası kullanılırken, ikinci parametre ise çıktı dosyasına da parola koyulup koyulmayacağını anlatmaktadır.

-passin pass:"parola1"
Enter fullscreen mode

Exit fullscreen mode

-passout pass:"parola2"
Enter fullscreen mode

Exit fullscreen mode

Ayrıca çıkan özel anahtardaki parolanın silinmesi gerektiği zaman aşağıdaki gibi parolayı kaldırabilrisiniz:

openssl rsa -in ozelanahtar.key -out parolasizanahtar.key
Enter fullscreen mode

Exit fullscreen mode



Sertifikaların tiplerine göre çıkartılması

PFX konusunda en çok kullanılan bir diğer özellik ise içerisinde birden fazla sertfiikanın yer alması. Ve bu sertifikalar çoğu zaman sertfiika zincirini oluşturmaktadır. Bu zincirin tepesinde de Sertifika Otoritesi (CA) bulunup altta da İstemci (client) bulunmaktadır. PFX dosyasında bu şekilde bir ayrım yapılması isteniyorsa aşağıdaki gibi yapılabilmektedir.

openssl pkcs12 -in tekdosya.pfx -clcerts -nokeys -out clientcert.crt
Enter fullscreen mode

Exit fullscreen mode

openssl pkcs12 -in tekdosya.pfx -cacerts -nokeys -out cacert.crt
Enter fullscreen mode

Exit fullscreen mode



Yeni bir PFX dosyası oluşturmak

PFX dosyası başta bahsettiğim gibi birden fazla sertifika veya özel anahtarı barındırdığı için aşağıdaki formatta bir komut ile yeni pfx dosyaları oluşturulabilmektedir:

openssl pkcs12 -export -in sertifika1.pem -inkey anahtar1.key -out tekdosya1.pfx
Enter fullscreen mode

Exit fullscreen mode



Source: https://dev.to/aciklab/pfx-dosyalari-hakkinda-3f1o

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

GIPHY App Key not set. Please check settings

A Converter From Bootstrap To Tailwind CSS Built With Vue

Are JavaScript strings immutable? – 30 seconds of code