Apache Geode CHANGELOG

SSL Sample Implementation

A simple example demonstrates the configuration and startup of Geode system components with SSL.

Provider-Specific Configuration File

This example uses a keystore created by the Java keytool application to provide the proper credentials to the provider. To create the keystore, run the keytool utility:

keytool -genkey \ 
-alias self \ 
-dname "CN=trusted" \ 
-validity 3650 \ 
-keypass password \ 
-keystore ./trusted.keystore \ 
-storepass password \ 
-storetype JKS 

This creates a ./trusted.keystore file to be used later.

gemfire.properties File

You can enable SSL in the gemfire.properties file. In this example, SSL is enabled for all components.

ssl-enabled-components=all
mcast-port=0
locators=<hostaddress>[<port>]

gfsecurity.properties File

You can specify the provider-specific settings in a gfsecurity.properties file, which can then be secured by restricting access to this file. The following example configures the default JSSE provider settings included with the JDK.

ssl-keystore=/path/to/trusted.keystore
ssl-keystore-password=password
ssl-truststore=/path/to/trusted.keystore
ssl-truststore-password=password
security-username=xxxx
security-userPassword=yyyy 

Locator Startup

Before starting other system members, we started the locator with the SSL and provider-specific configuration settings. After properly configuring gemfire.properties and gfsecurity.properties, start the locator and provide the location of the properties files. If any of the password fields are left empty, you will be prompted to enter a password.

gfsh>start locator --name=my_locator --port=12345 \
--properties-file=/path/to/your/gemfire.properties \
--security-properties-file=/path/to/your/gfsecurity.properties

Other Member Startup

Applications and cache servers can be started similarly to the locator startup, with the appropriate gemfire.properties file and gfsecurity.properties files placed in the current working directory. You can also pass in the location of both files as system properties on the command line. For example:

gfsh>start server --name=my_server \
--properties-file=/path/to/your/gemfire.properties \
--security-properties-file=/path/to/your/gfsecurity.properties

Connecting to a Running Cluster

You can use gfsh to connect to an SSL-enabled cluster that is already running by specifying the use-ssl command-line option and providing a path to the security configuration file:

gfsh>connect --locator=localhost[10334] --use-ssl \
--security-properties-file=/path/to/your/gfsecurity.properties

Once connected, you can then issue gfsh commands to perform a variety of operations, including listing members and displaying region characteristics.