With RSA key (Self Signed Certificate)

  1. Generate a keypair on Utimaco HSM.

›_ Console

# keytool -genkey -alias ibmrsa -keyalg RSA -keysize 2048 -keystore NONE -storetype PKCS11IMPLKS -providername IBMPKCS11Impl-CryptoServer 

Provide information when prompted Here:

  • RSA is the key algorithm

  • 2048 is the key size

  • NONE is the keystore for HSM

  • PKCS11IMPLKS is the storetype

  • IBMPKCS11Impl-CryptoServer is the provider name

  • ibmrsa is the key name that will be generated on Utimaco HSM

Provide the keystore password when prompted

tmpwk4gdhan.jpg

Key generation using keytool command

It is recommended to use CA signed certificate for production environment.

  1. Verify the entry with same alias name is generated using keytool command.

›_ Console

# keytool -list -keystore NONE -storetype PKCS11IMPLKS -providername IBMPKCS11Impl-CryptoServer  

Here:

  • NONE is the keystore for HSM

  • PKCS11IMPLKS is the storetype

  • IBMPKCS11Impl-CryptoServer is the provider’s name

Provide the keystore password when prompted

tmpnz08cx5a.jpg

Listkeys output

  1. List the objects using p11tool2.

›_ Console

# p11tool2 Slot=0 LoginUser=ask ListObjects 

Enter user PIN when prompted

tmpyk6_cfz0.jpg

List keys output using p11tool2

  1. Sign any sample jar file with jarsigner command.

›_ Console

# jarsigner -tsa http://timestamp.digicert.com -keystore NONE -storetype PKCS11IMPLKS -providername IBMPKCS11Impl-CryptoServer -signedjar hello_worldoutput.jar HelloWorld-0.7.0.jar ibmrsa 

Here:

  • http://timestamp.digicert.com is URL of timestamp server

  • NONE is the keystore for HSM

  • PKCS11IMPLKS is the storetype

  • IBMPKCS11Impl-CryptoServer is the provider’s name

  • hello_worldoutput.jar is the new output signed jar file that will be generated

  • HelloWorld-0.7.0.jar is the Jar file to be signed

  • ibmrsa is the RSA key used for jar signing

Provide the keystore password when prompted

tmprcnym1bz.jpg

Signing the jar using jarsigner command

  1. Verify the signed jar.

›_ Console

# jarsigner -verify hello_worldoutput.jar -keystore NONE -storetype PKCS11IMPLKS -storepass 12345678 -providername IBMPKCS11Impl-CryptoServer 

Here hello_worldoutput.jar is the newly generated signed jar file

tmpvkoyg6p5.jpg

Verifying signed jar