Home / SSL Certificate Installation

SSL Certificate Installation


The SMP web console can also be accessed using HTTPS.  A Self-Signed certificate is bundled along with SMP which will be used for HTTPS. This self signed certificate will not be trusted by the user browsers. Thus, while connecting to SMP, you need to manually verify the certificate information and the hostname of SMP server carefully and should force the browser to accept the certificate.
To make the SMP server identify itself correctly to the web browser and the user:

  • you need to obtain a new signed certificate from a CA for the SMP host or
  • you can configure an existing certificate obtained from a CA with wild-card principal support for the SMP host

You can use OpenSSL or keytool (bundled with Java) to create your certificates, get them signed by a CA and use them with SMP. The choice of which tool to use is yours, based on what your security administrators say. Detailed instructions on using both the tools are provided here. If you already have a certificate signed by a CA, then we recommend using OpenSSL to create the keystore and configure it in SMP (steps 4 and 5 in the instructions below).


Using OpenSSL

OpenSSL is available bundled with most of the Linux distributions. If you have Windows and do not have OpenSSL installed, download it from http://www.slproweb.com/products/Win32OpenSSL.html . Make sure the 'bin' folder under the OpenSSL installation is included in the 'PATH' environment variable.

Step 1: The first step is to create the public-private key pair that will be used for the SSL handshake

  • Open the command prompt
  • Execute 'openssl genrsa -des3 -out <privatekey_filename>.key 1024'
    • <privatekey_filename> is the filename you specify to store the private key
  • This will prompt you to enter a pass-phrase for the private key. Enter 'smp' or a pass-phrase of your choice. (Though it is not documented, Tomcat has issues with passwords containing special characters, so use a password that has only alpha characters)
  • This will create a file named <privatekey_filename>.key in the same folder
Step 2: Create a Certificate Signing Request (CSR) for submission to a certificate authority to create a signed certificate with the public key generated in the previous step.
  • Execute 'openssl req -new -key <privatekey_filename>.key -out <certreq_filename>.csr'
    • <privatekey_filename>.key is the one used in the previous step
    • <certreq_filename>.csr is the filename you specify to carry the certificate creation request to the CA (certificate authority)
  • This will prompt you to enter a series of values that are part of the distinguished name (DN) of the server that will host SMP
  • Enter values as applicable to you and importantly for the 'Common Name' supply the fully qualified name of the server hosting SMP (with which it will be accessed through the browsers)
  • This will create a file name <certreq_filename>.csr in the same folder
Step 3 : Submit the CSR to a Certificate Authority (CA) to obtain a CA signed certificate
  • Some of the prominent CAs are Verisign (http://verisign.com), Thawte (http://www.thawte.com), RapidSSL (http://www.rapidssl.com). Check their documentation / website for details on submitting CSRs and this will involve a cost to be paid to the CA
  • This process usually takes a few days time and you will be returned your signed SSL certificate and the CA's root certificate as .cer files
  • Save them both in the the same working folder where files from steps 1 and 2 are stored
Step 4: Import the CA-signed certificate to a keystore
  • On a command prompt navigate to the same working folder
  • Execute 'openssl pkcs12 -export -in <cert_file>.cer -inkey <privatekey_filename>.key -out <keystore_filename>.p12 -name smp -CAfile <root_cert_file>.cer -caname smp -chain'
    • where
      • cert_file.cer is the signed SSL certificate with the .cer extention
      • privatekey_filename.key is the private key file with a .key extension
      • keystore_filename.p12 name is the keystore that will be generated with a .p12 extension
      • root_cert_file.cer is the CA's root certificate with a .cer extension
    • When prompted for password, enter the same password which you used in step 1 for the private key. Note that this requirement is due to an inherent limitation in tomcat, where these two passwords have to be the same
  • This will generate the keystore file <keystore_filename>.p12 on the same folder
Step 5: Finally, configure the SMP server to use the keystore with your SSL certificate
  • Copy this <keystore_filename>.p12 generated in the previous step to <SMP_Install_Folder>\conf folder
  • In a command prompt, navigate to <SMP_Install_Folder>\conf folder
  • Open the file server.xml and do the following changes
  • Search for the entry 'keystoreFile', which will have the default value set to "conf/server.keystore". Change the value to "conf/<keystore_filename>.p12"
  • Make sure the entry  for 'keystorePass' is set to "smp" or the password you specified in the previous step while creating the keystore
  • Add a new entry keystoreType="PKCS12" next to the keystorePass entry
  • Save the server.xml file
  • Restart the SMP server and connect through the web browser. If you are able to view the SMP login console without any warning from the browser, you have successfully installed your SSL certificate in SMP!

Using Keytool

Step 1: The first step is to create the public-private key pair that will be used for the SSL handshake
  • Go to <SMP_Home>/jre/bin folder
  • Execute the command "./keytool -genkey -alias smp -keyalg RSA -keypass <privatekey_password> -storepass <keystore_password> -validity <no_of days> -keystore <keystore_filename>"
    • <keystore_password> is the password to access the keystore, <privatekey_password> is the password to protect your private key. Note that due to an inherent limitation in tomcat, these two passwords have to be the same. (Though it is not documented, Tomcat has issues with passwords containing special characters, so use a password that has only alpha characters)
    • <no_of_days> is the validity of the key pair in number of days, from the day it was created
  • The command will prompt you to enter details about you and your organization
    • For the 'first and the last name' enter the FQDN of the server running SMP
    • For other fields enter the relevant information
    • <keystore_password> is the password to access the keystore, <privatekey_password> is the password to protect your private key and <no_of_days> is the validity of the key pair in number of days, from the day it was created
  • This will create a keystore file named <keystore_filename> in the same folder, with the generated key pair
Step 2: Create a Certificate Signing Request (CSR) for submission to a certificate authority to create a signed certificate with the public key generated in the previous step.
  • Go to <SMP_Home>/jre/bin folder
  • Execute the command "keytool -certreq -keyalg RSA -alias smp -keypass <privatekey_password> -storepass <keystore_password> -file <csr_filename> -keystore <keystore_filename>"
    • Note that the <csr_filename> that you choose should have .csr extension. The <privatekey_password>, <keystore_password> and <keystore_filename> are the ones used in the last step
  • This will create a CSR file named <csr_filename> in the same folder
Step 3 : Submit the CSR to a Certificate Authority (CA) to obtain a CA signed certificate
  • Some of the prominent CAs are Verisign (http://verisign.com), Thawte (http://www.thawte.com), RapidSSL (http://www.rapidssl.com). Check their documentation / website for details on submitting CSRs and this will involve a cost to be paid to the CA
  • This process usually takes a few days time and you will be returned your signed SSL certificate and the CA's certificate as .cer files
  • Save them both in the <SMP_Home>/jre/bin folder
Step 4: Import the CA-signed certificate to the SMP server
  • Import your SSL certificate into your keystore
  • Go to <SMP_Home>/jre/bin folder
  • Execute the command "keytool -import -alias smp -keypass <privatekey_password> -storepass <keystore_password> -keystore <keystore_filename> -trustcacerts -file <your_ssl_certificate>"
  • <your_ssl_certificate> is the certificate you obtained from the CA, a .cer file saved in the previous step. The <privatekey_password>, <keystore_password> and <keystore_filename> are the ones used in the previous steps
  • Now copy the <keystore_filename> to the <SMP_Home>/conf folder
Step 5: Finally, configure the SMP server to use the keystore with your SSL certificate
  • Go to <SMP_Home>/conf folder
  • Open the file server.xml
  • Search for the entry 'keystoreFile', which will have the default value set to "conf/server.keystore". Change the value to "conf/<keystore_filename>" where <keystore_filename> is the one used in the previous steps
  • Also search for the entry 'keystorePass' (which will infact be next to keystoreFile), which will have the default value set to "xxaavteenn". Change the value to "<keystore_password>" where <keystore_password> is the one used in the previous steps
  • Restart the SMP server and connect through the web browser. If you are able to view the SMP login console without any warning from the browser, you have successfully installed your SSL certificate in SMP!
Note : Tomcat by default accepts only the JKS (Java Key Store) and PKCS #12 format keystores. In case, the keystore is of PKCS #12 format, include the following option in the server.xml file along with the keystore name, keystoreType="PKCS12?This tells tomcat that the format is PKCS12. Restart the server after this change.

Installing an existing wild card supported SSL certificate

  • Go to <SMP_Home>/conf folder
  • Open the file server.xml
  • Search for the entry 'keystoreFile', which will have the default value set to "conf/server.keystore". Change the value to "conf/<keystore_filename>" where <keystore_filename> is the one belong to the existing wild-card certificate.
  • Also search for the entry 'keystorePass' (which will in fact be next to keystoreFile), which will have the default value set to "xxaavteenn". Change the value to "<keystore_password>" where <keystore_password> is the one used to protected the existing wild-card certificate keystore.
  • Restart the SMP server and connect through the web browserconsole. If you are able to view the SMP login console without any warning from the browser, you have successfully installed your SSL certificate in SMP!
Note : Please refer your CA's documentation for more details and troubleshooting

    Post a comment

    Your Name or E-mail ID (mandatory)

    Note: Your comment will be published after approval of the owner.




     RSS of this page