Java Key Store

Emin Aktaş
3 min readOct 9, 2020

--

Java Key Store (JKS)

Cem Topkaya ile birlikte JKS üzerine yaptığımız çalışma notları

certServiceClient-keystore.jks java keystore içerisini görüntüler ve metin dosyasına kaydeder.$ keytool -list -v -keystore certServiceClient-keystore.jks > certServiceClient-keystore.jks.txtmetin dosyasını görüntüler$ cat certServiceClient-keystore.jks.txt

JKS İçeriğini Dışarı Çıkarmak

  1. JKS Dosyası önce PKCS dosyasına dönüştürülür
  2. PKXXX formatındaki dosyadan sertifika ikilileri (public, private anahtar) çıkarılır

1. PKCS Formatına Dönüştürmek

importkeystore ile jks içeriğini pkcs formatına dönüştüreceğiz

Tek bir girişi veya tüm girişleri bir kaynak anahtar deposundan hedef anahtar deposuna içe aktarır.

keytool -importkeystore \
-srckeystore certServiceClient-keystore.jks \
-destkeystore certServiceClient-keystore.p12 \
-deststoretype PKCS12 \
-srcalias ????? \
-srcstorepass jks_dosyasını_olustururken_kullanılan_sıfre \
-deststorepass olusacak_pkcs_dosyasına_atayacagımız_sıfre

Alias bilgisini bulmak için jks içeriğine bakalım ve certserviceclient olduğunu görelim

keytool -importkeystore \
-srckeystore certServiceClient-keystore.jks \
-destkeystore certServiceClient-keystore.p12 \
-deststoretype PKCS12 \
-srcalias certserviceclient \
-deststorepass secret \
-srcstorepass secret

2. PKCS Formatından

Public ve Private Tüm Anahatarları Birden Çıkarma

openssl pkcs12 -in certServiceClient-keystore.p12 \
-nodes -out certServiceClient-keystore.crt-key.pem

- Public Key Çıkarmak

>> nokeys Anahtarıyla sadece public anahatarı çıkartıyoruz:
openssl pkcs12 -in certServiceClient-keystore.p12 \
-nodes -out certServiceClient-keystore.crt-key.pem

2 Adet public anahtarı görmemizin sebebi hem root sertifikasını hem de imzalı sunucu sertifikasını JKS dosyasında tutmasıdır. Unutmamalı ki JKS sertifika anahtarlarını tutabilen bir klasör gibi çalışır.

Peki ama hangisi kök sertifikanın açık anahtarı?

En basit haliyle açık anahtarın ayrıntılarını görüntüleyecek çevrimiçi bir sayfadan aşağıdaki gibi görüntüleyebiliriz:

- Private Key Çıkarmak

>> nocerts Anahtarıyla sadece private anahatarı çıkartıyoruz:
openssl pkcs12 -in certServiceClient-keystore.p12 \
-nodes -nocerts \
-out certServiceClient-keystore.key.pem

TrustStore JKS’den Anahtar Çiftlerini Çıkarmak

keytool -importkeystore \
-srckeystore truststore.jks \
-destkeystore truststore.p12 \
-deststoretype PKCS12 \
-srcalias root \
-deststorepass secret \
-srcstorepass secret
>> Tüm anahtarları çıkartıyoruz:
openssl pkcs12 -in truststore.p12 \
-nodes \
-out truststore.crt-key.pem

Sadece Gizli Anahtarı Çıkarıyoruz

>> nocerts Anahtarıyla sadece private anahatarı çıkartıyoruz:
openssl pkcs12 -in truststore.p12 \
-nodes -nocerts \
-out truststore.key.pem

Yararlı Linkler:

--

--