Generate a Key Pair and Create a Keystore

This procedure uses the Java keytool utility to generate a key and save it to a Java keystore.

NOTE:

  • The CA you use might have specific options required for creating an HTTPS certificate. Review the instructions provided by the CA before creating your key pair.

  • DSA keys used in Reflection Gateway server certificates must be 1024, 2048, or 3072 bits. RSA keys must be either 2048 or 3072 bits.

To generate a new public/private key pair in a Java keystore

  1. Use the -genkeypair option to generate a key and save it to a Java keystore (newkeystore.bckfs in this example). The example shown here prompts you to enter values for items that make up the distinguished name (DN) in the certificate. See the example below to enter these values directly on the command line.

    keytool -genkeypair -providername BCFIPS -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providerpath ../bc-fips-1.0.1.jar -alias rgateway -keyalg RSA -keysize 2048 -keystore newkeystore.bcfks -validity 365 -storetype BCFKS –storepass "<password>"
  2. The keytool prompts you to enter a password and values for the items that make up the distinguished name (DN) in the certificate (name = CN, organizational unit = OU, organization = O, city or locality = L, state or province = S, two letter country code = C). The generated DN will use the value "Unknown" for any fields you don't specify.

    • When you are prompted with "What is your first and last name?"

      You must enter the DNS name that is used to access the Reflection Gateway server (for example gateway.mycompany.com). This value is used as the CN (Common Name) in the certificate. If the CN in a certificate doesn't match the actual DNS name used to access the server, you will see a certificate warning when you connect to the server.

    • When you are prompted with "What is the two-letter country code for this unit?"

      You must enter a valid two-letter country code (for example US).

  3. When you are prompted for a password for the alias, press Enter to use the same password you used for the keystore.

An alternate option to responding to prompts is to specify the DN value on the command line using the -dname option. For example:

keytool -genkeypair -providername BCFIPS -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providerpath ../bc-fips-1.0.1.jar  -dname "CN=gateway.mycompany.com, O=My Company, C=US" -alias rgateway -keyalg RSA -keysize 2048 -keystore newkeystore.bcfks -validity 365  -storetype  BCFKS.