Pendahuluan

Keytool adalah perintah bawaan dari Java JDK atau JRE. Digunakan untuk tujuan mengelola public/private key dan certificate.

Kebanyakan penggunaannya untuk instalasi SSL Certificate.

Dengan kata lain kalau aplikasi Java kita mau mengakses website/API dengan awalan https, maka kita harus memasukkan SSL certificate beserta root dan intermediary certificate nya ke library nya JRE java dengan perintah keytool tersebut,

Sehingga waktu aplikasi java kita jalankan, maka JRE akan mengecek kesesuaian dan melakukan negosiasi TLS antara website/API yang kita akses dengan SSL certificate yang kita install.

Dimana lokasi file keytools ?

Keytools dijalankan dengan mengeksekusi perintah keytool.exe atau keytool.sh

Lokasi perintah keytool itu ada 2 :

  • %JAVA_HOME%\bin
    : misalnya di Windows C:\Program Files\Java\jdk1.8.0_121\jre\bin

  • %JAVA_HOME%\jre\bin
    : misalnya di Windows C:\Program Files\Java\jdk1.8.0_121\bin

SSL Certificate keynya sendiri akan disimpan dalam sebuah file keystore.

Lokasi keystore tersebut adalah di :

  • %JAVA_HOME%\jre\lib\security
    : misalnya di Windows C:\Program Files\Java\jdk1.8.0_121\jre\lib\security

kita bisa memasukkan, mengubah dan membuang SSL Certificate dari keystore tersebut.

Berikut perintah-perintahnya :

Perintah untuk import CA (Certificate Authority)/Root/Intermediate certificate

keytool -import -trustcacerts -file ca_base64.cer -alias trustCA -keystore %JAVA_HOME%/jre/lib/security/cacerts

Perintah untuk melihat daftar CA / root/ intermediary CA yang sudah kita install

keytool -list -v -keystore %JAVA_HOME%/jre/lib/security/cacerts

Perintah untuk import sebuah certificate ke sebuah keystore

keytool -import -alias certificateBaru -file certificateBaru_base64_file.cer -keystore %JAVA_HOME%/jre/lib/security/publicKey.store

Perintah untuk melihat daftar certificate yang sudah kita install di keystore

keytool -list -v -keystore %JAVA_HOME%/jre/lib/security/publicKey.store -alias certificateBaru



Kalau menggunakan linux, ganti saja %JAVA_HOME% dengan $JAVA_HOME