How to Generate Certificate Signing Request (CSR) in Tomcat
This document provides instructions for generating a Certificate Signing Request (CSR) for Tomcat. If you are unable to use these instructions for your server, RapidSSL recommends that you contact the vendor or a company that supports Tomcat.
To generate a CSR, you will need to create a key pair for your server. These two items are a digital certificate key pair and cannot be separated. If you lose your public/private key file or your password and generate a new one, your SSL Certificate will no longer match and you will need to replace the certificate.
Step 1: Create a Keystore and Private Key
NOTE: All certificates that will expire after October 2013 must have a 2048 bit key size
Please use a recent version of the JDK for best security practices. If you are running a 1.3 JVM, download JSSE 1.0.2 (or later) from here.
Set it either an installed extension on the system or set an environment variable JSSE_HOME that points to the directory where JSSE is installed.
1. Create a certificate keystore and private key by executing the following command:
keytool -genkey -alias <your_alias_name> -keyalg RSA -keystore <your_keystore_filename> -keysize 2048
2. Enter and re-enter a keystore password. Tomcat uses a default password of changeit. Hit Enter if you want to keep the default password. If you use a different password, you will need to specify a custom password in the server.xml configuration file.
3. This command will prompt for the following X.509 attributes of the certificate:
- First and last name (Common Name (CN)): Enter the domain of your website (i.e. www.myside.org) in this field.
It looks like "www.company.com" or "company.com".
NOTE: RapidaSSL certificates can only be used on Web servers using the Common Name specified during enrollment. For example, a certificate for the domain "domain.com" will receive a warning if accessing a site named www.domain.com or "secure.domain.com", because www.domain.com
and "secure.domain.com" are different from "domain.com".
- Organizational Unit (OU): This field is for the name of the department or organization unit making the request.
- Organization (O): If your company or department has an &, @, or any other symbol using the shift key in its name, you must spell out the symbol or omit it to enroll. Example: XY & Z Corporation would be XYZ Corporation
- Locality or City (L): The Locality field is the city or town name, for example: Mountain View.
- State or Province (S): Spell out the state completely; do not abbreviate the state or province name, for example: California
- Country Name (C): Use the two-letter code without punctuation for country, for example: US or CA
4. When prompted for the password for the private key alias, press Enter. This will set the private key password to the same password used for the keystore from the previous step.
Make note of the private key and the keystore password. If lost they cannot be retrieved.
For further information, please refer to the Tomcat Web site.
Step 2: Generate a CSR
1. Run the following command to generate the CSR:
keytool -certreq -keyalg RSA -alias <your_alias_name> -file certreq.csr -keystore <your_keystore_filename>
NOTE: The CSR must be generated using SHA-1 or SHA-256 /384 /512. The MD5 digest (signature) algorithm are no longer allowed.
Outdated versions of Java SDK may use the MD5 signature hash under RSA. It is recommended to upgrade to a more recent version of the Java SDK.
Alternatively, try to specify SHA-1 using the following command:
keytool -certreq -keyalg RSA -alias <your_alias_name> -file certreq.csr -keystore <your_keystore_filename> -sigalg SHA1withRSA
2. Create a copy of the keystore file. Having a back-up file of the keystore at this point can help resolve installation issues that can occur when importing the certificate into the original keystore file.
3. To copy and paste the file certreq.csr into the enrollment form, open the file in a text editor that does not add extra characters (Notepad or Vi are recommended).
The text file should look like this:
-----BEGIN CERTIFICATE REQUEST-----
-----END CERTIFICATE REQUEST-----
WarungSSL has made efforts to ensure the accuracy and completeness of the information in this document. However, WarungSSL makes no warranties of any kind (whether express, implied or statutory) with respect to the information contained herein. WarungSSL assumes no liability to any party for any loss or damage (whether direct or indirect) caused by any errors, omissions, or statements of any kind contained in this document.
Further, WarungSSL assumes no liability arising from the application or use of the product or service described herein and specifically disclaims any representation that the products or services described herein do not infringe upon any existing or future intellectual property rights. Nothing herein grants the reader any license to make, use, or sell equipment or products constructed in accordance with this document. Finally, all rights and privileges related to any intellectual property right described herein are vested in the patent, trademark, or service mark owner, and no other person may exercise such rights without express permission, authority, or license secured from the patent, trademark, or service mark owner. Geotrust reserves the right to make changes to any information herein without further notice.