Enable HTTPS
Enabling SSL
Running PercussionCMS on Port 80 / 443
You can update the <InstallDir>/jetty/base/etc/installation.properties file to have the CMS use the default HTTP/HTTPS ports 80 and 443 instead of the default 9992 / 8443. On Linux systems this requires that the PercussionCMS service be installed to run as the root user in order for it to use the privileged ports (any ports below <1024). The properties that control the ports used are:
jetty.ssl.port=443
jetty.http.port=80
Turning on SSL Support
Linux:
cd {Percussion}/jetty/
./StartJetty.sh --add-to-start=ssl,https
cd {Percussion}\jetty\
StartJetty.bat --add-to-start=ssl,https
# ./StartJetty.sh --add-to-start=ssl,https
Found Jetty service PercussionCMS in /etc/default/PercussionCMS pointing to jetty base /{Percussion}/jetty/base
This instance is currently installed as service PercussionCMS
/var/run/rxjetty/PercussionCMS
INFO : https initialized in ${jetty.base}/start.d/https.ini
INFO : ssl initialized in ${jetty.base}/start.d/ssl.ini
COPY : ${jetty.home}/modules/ssl/keystore to ${jetty.base}/etc/keystore
INFO : Base directory was modified
jetty.ssl.port=8443
jetty.sslContext.keyStorePath=etc/Your.keystore
jetty.sslContext.trustStorePath=etc/Your.keystore
jetty.sslContext.keyStorePassword=yourpassword
jetty.sslContext.keyManagerPassword=yourpassword
jetty.sslContext.trustStorePassword=yourpassword
perc.ssl.protocols=TLSv1.2
Example Java Keystore
When the https and ssl modules were enabled, the system creates an example Java keystore in the <InstallDir>/jetty/base/etc/keystore location if the file does not exist. This file can be ignored if you are specifying your own keystore. The example keystore is configured with a self signed certificate and will show security errors from the browser when trying to access the site, but can be a good way to verify that ssl is enabled.
Creating a new Keystore With an Existing Valid Certificate
If you are configuring SSL/HTTPS with Percussion for the first time, the steps below provide an example of
Example 1: OpenSSL (PEM) Public & Private Key
openssl pkcs12 -export -chain -in /path/to/cert/my.crt -inkey /path/to/key/my.key.pem -out keystore.p12 -name training.percussion.com -CAfile /path/to/bundle/bundle.crt
keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -destkeystore keystore.jks
Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12".
Example 2: PFX (X.509) File
This example shows the process for importing a pfx formatted certificate.
Once the installation.properties are configured, the Jetty service may be restarted and Percussion should now be accessible via HTTPS on the configured jetty.ssl.port.
Redirecting HTTP requests to HTTPS
Update <InstallDir>/rxconfig/Server/server.properties to include an entry for:
requireHTTPS=true
The Percussion service must be restarted for the change to take effect.
Disabling HTTPS after it is enabled
- {InstallDir}/jetty/base/start.d/ssl.ini
- {InstallDir}/jetty/base/start.d/https.ini
Edit the <InstallDir>/jetty/base/etc/installation.properties file and comment out (#), or delete the following properties:
jetty.ssl.port=8443
jetty.sslContext.keyStorePath=etc/Your.keystore
jetty.sslContext.trustStorePath=etc/Your.keystore
jetty.sslContext.keyStorePassword=yourpassword
jetty.sslContext.keyManagerPassword=yourpassword
jetty.sslContext.trustStorePassword=yourpassword
perc.ssl.protocols=TLSv1.2
Edit the <installDir>/rxconfig/Server/server.properties file
requireHTTPS=false
The Percussion service must be restarted for the change to take effect.