Apply an SSL Certificate to Percussion

Setting up https in Percussion CMS is based upon standard procedures in the Jetty application server.  This can be found here: https://www.eclipse.org/jetty/documentation/jetty-9/index.html#configuring-ssl.  Custom configuration paramters can be placed in {installation root}/jetty/base/etc/installation.properties instead of ssl.ini file described in this documentation

Place your keystore file (public/private key pair) and certificate file in the directory {installation root}/jetty/base/etc

Enable https in jetty

cd {installation root}/jetty

StartJetty.bat --add-to-start=https,ssl

This will create a default non-secure self-signed keystore in {installation root}/jetty/base/etc/keystore that can be used on startup to test but should be replaced with actual keystore.

Create a keystore file

See the following jetty documentation that describes how to create a certificate and keystore for use in the server. 

https://www.eclipse.org/jetty/documentation/jetty-9/index.html#generating-key-pairs-and-certificates

Place your keystore file (public/private key pair) and certificate file in the directory {installation root}/jetty/base/etc add configuration properties in {installation root}/jetty/base/etc/installation.properties.  See below for configuration options

Standard configuration options

Below are the main configuration options.  The path specified is relative to {installation root}/jetty/base directory.  The keystore password can be entered in plain text but is recommended to obfuscate the password as is indicated in the default below with the OBF: prefix.  The next section describes how to create obfuscated passwords for jetty.

jetty.sslContext.keyStorePath=etc/keystore

jetty.sslContext.keyManagerPassword=OBF:1u2u1wml1z7s1z7a1wnl1u2g

perc.ssl.includeCiphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256


perc.ssl.protocols=TLSv1.2

Other configuration options may be available and provided by jetty and current options can be found in {installation root}\jetty\upstream\modules\ssl.mod

Obfuscating passwords for jetty configuration

java -cp {installation root}\jetty\upstream\lib\jetty-util-9.4.10.v20180503.jar org.eclipse.jetty.util.security.Password {password}

The version number may change, confirm the current version of jetty-util-*.jar

This command should produce a line starting with "OBF:"  copy the encoded password including the prefix into the configuration file.

See the Jetty documentation on this topic for more information:

https://www.eclipse.org/jetty/documentation/jetty-9/index.html#configuring-security-secure-passwords

Restart the CMS service for the changes to take effect.

Ensure that you can login through the https protocol and your SSL port.  You may need to re-configure your Dashboard gadgets (edit settings) the first time that you login via SSL if you previously logged in via http protocol.