Convert Server Certificate and Key into PKCS#12, and Java Keystore (JKS)

I was looking for simple instructions on how to convert a certificate to a keystore. Here is my simplified version.

  1. Build the certificate chain into a single file.
    cat server.pem intermediate.pem root.pem > import.pem
    
  2. Convert the private key and merged certificate files into a PKCS12 file.
    openssl pkcs12 -export -in import.pem -inkey server.key -name serverHostName > server.p12
    
  3. Import the PKCS12 file into Java Keystore (JKS).

    Note: Java 9 changed the default Java Keystore to PKCS#12. The following is only required for Java 8, or applications that have JKS dependency. See JEP 229: Create PKCS12 Keystores by Default

keytool -importkeystore -srckeystore server.p12 -destkeystore keystore.jks -srcstoretype pkcs12 -alias serverHostName 

Notes

If you are using PKCS#12 as your keystore, edit the JAVA_HOME/jre/lib/security/java.security file and change the default keystore type as shown below:

# Default keystore type.
keystore.type=pkcs12

John Yeary

Caffeinated Java Programmer, and former Java Software Architect at Orange Bees and Kopis, and current Senior Developer at Velosio. My opinions are my own.

Greenville, South Carolina, USA johnyeary.com
blog comments powered by Disqus