# Codehaus Cargo : Containers with HTTPS support

Created by S. Ali Tokmen, last modified on May 11, 2024

Though some containers support HTTPS, the way it is configured is not yet uniform across them.

## Jetty 10.x onwards

The Jetty container supports HTTPS, both as a complement to the HTTP connector or as an HTTPS-only connector.

To add HTTPS support, in addition to the HTTP support:

1. Set the property `JettyPropertySet.MODULES` to include the `https` module (in addition to the `http` module)
2. Set the properties `JettyPropertySet.CONNECTOR_KEY_STORE_FILE` and `JettyPropertySet.CONNECTOR_KEY_STORE_PASSWORD` with the relevant details
3. Optionally, `JettyPropertySet.CONNECTOR_HTTPS_PORT` allows you to change the HTTPS port (default is `9443`)

To only have HTTPS (and no HTTP) configured:

1. Set the property `JettyPropertySet.MODULES` to have the `https` module instead of the `http` module
2. Set the property `GeneralPropertySet.PROTOCOL` to `https`
3. Set the properties `JettyPropertySet.CONNECTOR_KEY_STORE_FILE` and `JettyPropertySet.CONNECTOR_KEY_STORE_PASSWORD` with the relevant details
4. Make sure you set both `ServletPropertySet.PORT` and `JettyPropertySet.CONNECTOR_HTTPS_PORT` to the same port number

## Tomcat 6.x onwards and TomEE

The Tomcat 6.x onwards and TomEE containers either use HTTP or HTTPS (not both). To switch to HTTPS:

1. Set the property `GeneralPropertySet.PROTOCOL` to `https`
2. Set the properties `TomcatPropertySet.CONNECTOR_KEY_STORE_FILE` and `TomcatPropertySet.CONNECTOR_KEY_STORE_PASSWORD` with the relevant details

The property `ServletPropertySet.PORT` is then used for HTTPS.