Configuring TIBCO WebFOCUS for SSL

How to:

The Hypertext Transfer Protocol over Secure Socket Layer (https) establishes an encrypted Secure Socket connection, and should be used to secure communications between WebFOCUS and browsers assigned to end users. There are many configuration options that enable the use of this protocol, one of which is the Apache Tomcat configuration, as described in this section.

To activate Secure Socket Layer-based communications, create a self-signed certificate for Java. You can optionally submit it to a Certificate Authority to establish it as a trusted certificate. The keytool utility that creates the certificate also modifies the connection type from open to SSL. Therefore, you must comment out the default Connector Protocol setting in the Tomcat server.xml file, and ensure that a setting for the new SSL Connector Protocol appears there instead.

Finally, the establishment of SSL security requires the replacement of the default connections between WebFOCUS and the internal applications that create graphs or deliver output to Excel spreadsheets with connections to the JSCOM3 Java-based listener. To implement this change, you must assign the value Reporting Server JCOM to the Excel Server URL (EXCELSERVURL) and Graph Server URL (GRAPHSERVURL) settings within the WebFOCUS client.

Note: Administrators can configure IIS to use SSL outside of their WebFOCUS configuration. For more information, see documentation provided by IIS, Tomcat, or your application server provider.

Procedure: How to Create a Self-Signed Certificate

To create a Self-Signed Certificate with Java:

  1. Open the command prompt window and redirect the command prompt to the drive:\ibi\WebFOCUS82\jre\bin directory.
  2. Type the keytool command and values as shown in the following example.
    keytool -genkeypair -alias mykey -ext san=dns:dnsName1,dns:dnsName2…
    -keyalg RSA -validity 720 -keystore /path_to_keystore/keystore 
    -keysize 2048 –storepass MyPassword
    

    where:

    dnsName

    Is the name, or alias, of the entity (the subject) that will present this certificate for authentication. You can include multiple names to ensure that all versions of the subject names are recognized. For multiple alternative names, use the syntax, dns:first_dnsName,dns:second_dnsName,...

    For example, dns:wfsvr,dns:wfsvr.ibi.com.

    MyPassword

    Is the password for this keystore. You can accept MyPassword, the default value, or you can replace it with a unique password by typing it in this field.

    /path_to_keystore/keystore

    Is the location information that specifies where the key file will be placed. This value is optional. If you do not specify a location for the key file, the Keytool utility places it in the default location.

    Note: The name mykey is important if you need to issue a -certreq (certificate request) for a certificate signed by a Certificate Authority.

  3. Press the Enter key.

    The command prompt displays the first in a series of questions.

  4. Respond to each question as follows, and press Enter after each response:
    • “What is your first and last name?” Type the first and last name of the certificate holder.
    • “What is the name of your organizational unit?” Type the name of the organizational unit of the certificate holder.
    • “What is the name of your organization?” Type the name of the organization of the certificate holder.
    • “What is the name of your City or Locality?” Type the name of the city or locality of the certificate holder.
    • “What is the name of your State or Province?” Type the two-letter abbreviation for the state in which the certificate holder is located.
    • “What is the two-letter country code for this unit?” Type the two-letter abbreviation for the country in which the certificate holder is located.
  5. When the command prompt displays the question, “Is CN=__, OU=__, O=__, L=__, ST=__, C=__ correct?”, review the values and type y if they are correct.

    If they are not correct, Type n and retype the keytool command from step 2.

    If they are correct, the new Self-Signed Certificate is ready for use.

Reference: Establishing the Self-Signed Certificate as a Trusted Certificate

Until you identify the new self-signed certificate to the browser as a Trusted Certificate, the browser will display errors when you use it. During the initial testing period, you can add the new self-signed certificate directly to the Trusted Certificate Authority of those browsers included in the test. However, to fully establish the new certificate as a trusted certificate, you typically request certification for it from a Certificate Authority using the following request:

keytool -certreq -alias mykey -storepass MyPassword –file ./mykey.csr   
–keystore /path_to_keystore/keystore

where:

MyPassword

Is the password for this keystore. You can accept MyPassword, the default value, or you can replace it with a unique password by typing it in this field.

/path_to_keystore/keystore

Is the location information that specifies where the key file will be placed. This value is optional. If you do not specify a location for the key file, the Keytool utility places it in the default location.

You can then send the certificate request file (mykey.csr) to a Certificate Authority to sign, and when the authority returns the signed certificate, import it into the keystore.

Reference: Importing the Trusted Certificate into the Keystore

To import your certificate from an external Certificate Authority (CA), type the following command:

keytool –import –alias mykey –file ./mykey.crt –keystore /path_to_keystore/keystore

where:

/path_to_keystore/keystore

Is the location information that specifies where the key file will be placed. This value is optional. If you do not specify a location for the key file, the Keytool utility places it in the default location.

If your CA is an internal CA, then type the following command to import the certificate from your Certificate Authority.

keytool –import –alias CA –trustcacerts –file ./ca.crt –keystore /path_to_keystore/keystore

where:

/path_to_keystore/keystore

Is the location information that specifies where the key file will be placed. This value is optional. If you do not specify a location for the key file, the Keytool utility places it in the default location.

Reference: Updating the Connector Protocols in the Tomcat Server.xml File

If you included Tomcat in your product installation, the server.xml file for Tomcat is located in the following directory:

C:\ibi\tomcat\conf

The keytool utility disables the http connection assigned to port 26000. Therefore you must comment out the Connector tag in the server.xml file that defines this http-based connection by typing an exclamation point (!) after the open tag symbol (<).

<Connector connectionTimeout="20000" maxPostSize="-1" port="26000" protocol="HTTP/1.1" redirectPort="26001" useBodyEncodingForURI="true"/>

The keytool utility also establishes an SSL connector on port 443. This connection replaces the old http based connection. Therefore, if it does not appear in the file, you must type this updated version of the connector tag, with its attributes and values, as shown in the following example:

<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="443" SSLEnabled="true"
keystoreFile="C:/users/path_to_keystore/keystore" 
keystorePass="MyPassword"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"     ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA"/>

where:

/path_to_keystore/keystore

Is the location information that specifies where the key file will be placed. This value is optional. If you do not specify a location for the key file, the Keytool utility places it in the default location.

MyPassword

Is the password for this keystore. You can accept MyPassword, the default value, or you can replace it with a unique password by typing it in this field.

Procedure: How to Change the TIBCO WebFOCUS Configuration to Support SSL

Before you begin, ensure the JSCOM service is configured and operational on the WebFOCUS Server. For more information, see How to Configure Java Services for a JSCOM3 Listener in the TIBCO WebFOCUS® Reporting Server Administration Manual.

  1. Sign in as an administrator, and open the Administration Console.
  2. On the Configuration tab, under Application Settings, click Client Settings.
  3. Click Reporting Server JSCOM in the Excel Server URL list.
  4. Click Reporting Server JSCOM in the Graph Server URL list.
  5. Click Save.
  6. When you receive the Successfully Saved message, click OK.