Java Key Store
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
- JKS Dosyası önce PKCS dosyasına dönüştürülür
- 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: