Posted on

Making a JKS keystore from PEM

Just thought I would share this snippet with you all..
This does the conversion of the pem file to Java Key Store format.

#!/bin/bash
# Alter path to your java keytool.
keytool="/etc/alternatives/keytool"
PASS="<insert keystore pass here>"
ALIAS="<app name>"
keyfile="./yourdomain.key"
rootfile="./yourdomain.ca-bundle"
certfile="./yourdomain.crt"
bundlefile="bundle.cer"
destkeystore="keystore.jks"
cat ${certfile} ${rootfile} > ${bundlefile}

openssl pkcs12 -export -in ${bundlefile} -inkey ${keyfile} -out server.p12 -name ${ALIAS} -CAfile ${bundlefile} -caname root
# Export the pkcs12 to a jks file.
${keytool} -importkeystore -deststorepass ${PASS} -destkeypass ${PASS} -destkeystore ${destkeystore} -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass ${PASS} -alias ${ALIAS}
# Convert the jks to a pkcs12 type keystore
${keytool} -importkeystore -srcstorepass ${PASS} -srckeystore ${destkeystore} -destkeystore ${destkeystore} -deststoretype pkcs12