Wednesday, July 1, 2015

Managing Java KeyStore (JKS) for Android

What is a Java KeyStore : A Java KeyStore (JKS) is a repository of security certificates.

Basically a Java KeyStore is kind of a container for the public-private key pair or security certificates.

So when I started experimenting with Android Apps, I created multiple keystores and than managing each key-store gets difficult. Passwords for keystores and than again another password for the keys stored in it.

There is an easy way to fix it. The way is to merge all the keystores into one. There is no direct merge but its easy to export the key form the keystores and than importing all the keys into one keystore.

There is way to do all this via command line but there is an easy GUI way. KeyStore Explorer is a platform independent tool that allows the keystores to be merged easily.

KeyStore Explorer might ask you to install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files if they are not installed already.

After installing simply open the source keystores and export all key-pair from that keystore, its easy and than in the end open the destination keystore to import all the exported key pairs in it.

With this tool one can easily allow to change the alias of android signing keys.

KeyStore Explorer also allow easy GUI way to change passwords for the keys and keystore.

There is no issue in importing keys from totally different developer and than using that to sign android apps. I personally imported a key from a different developer in my keystore and Google Play Developer Console gave me no issues while uploading new APK. After all its the key that differentiate the different developers not the keystore itself.

Now I have all my keys in one keystore and its very convenient to sign apps.