Configuring cluster encryption and authentication
When you use the obfuscate or clusterkey utility to set pf.cluster.auth.pwd, the resulting value is encrypted with key material from the console node’s pf.jwk file. Each engine node must contain the relevant key material to deobfuscate the password and join the cluster. If you use either utility, start with Configure the cluster authentication password, then complete the matching procedure.
Complete the procedure that matches your situation: enabling cluster encryption on an existing cluster, adding a new engine node, or converting an existing PingFederate instance to an engine node.
Before you begin
-
Identify the console node and all engine nodes in the cluster.
-
If you are enabling cluster encryption on an existing cluster, plan a maintenance window because you must stop and restart all cluster nodes.
-
If you use a MasterKeyEncryptor, use the Add a new engine node procedure. Manual key merging is not possible with a MasterKeyEncryptor.
Configure the cluster authentication password
-
On the console node, use one of the following utilities in the
<pf_install>/pingfederate/bindirectory to generate or obfuscate the cluster authentication password:-
Use the
obfuscateutility (obfuscate.batfor Windows andobfuscate.shfor Linux) to obfuscate a password. -
Use the
clusterkeyutility (clusterkey.batfor Windows andclusterkey.shfor Linux) to generate an obfuscated cluster password.
-
-
Copy the generated value to
pf.cluster.auth.pwdin<pf_install>/pingfederate/bin/run.propertieson the console node.Use the same value on every node. Don’t generate a separate value on each engine node.
Enable encryption on an existing cluster
-
Replicate the console node’s configuration to all engine nodes. This makes the required key material from the console node’s
pf.jwkfile available on the engine nodes. -
Stop all cluster nodes.
-
Set the same, non-blank
pf.cluster.auth.pwdvalue in<pf_install>/pingfederate/bin/run.propertieson every node.Configuration replication does not copy the
run.propertiesfile. Set this property manually on each node. -
Set
pf.cluster.encrypttotrueinrun.propertieson the console node and every engine node. -
Start all cluster nodes.
Add a new engine node
-
Extract the PingFederate package on the engine node.
-
Before starting the engine node for the first time, copy
<pf_install>/pingfederate/server/default/data/pf.jwkfrom the console node to the same path on the engine node. -
If you use a MasterKeyEncryptor, also copy
<pf_install>/pingfederate/server/default/data/config-store/com.pingidentity.crypto.jwk.MasterKeySet.xmlfrom the console node to the engine node. -
Complete the engine setup.
-
Set the same
pf.cluster.auth.pwdandpf.cluster.encryptvalues as the other nodes, and start the engine node.
Convert an existing PingFederate instance to an engine node
|
Don’t use this procedure if you use a MasterKeyEncryptor. Instead, start with a fresh engine node and follow Add a new engine node. |
-
Stop the PingFederate instance.
-
Manually merge the keys from the console node’s
<pf_install>/pingfederate/server/default/data/pf.jwkfile into the instance’s correspondingpf.jwkfile. Don’t replace the instance’s existing key material. -
Set the same
pf.cluster.auth.pwdandpf.cluster.encryptvalues as the other nodes. -
Start the engine node.
Result
All nodes use the same cluster authentication password. If you used an obfuscated or utility-generated value, each engine node contains the key material required to deobfuscate the password and join the cluster. When pf.cluster.encrypt is set to true, communication between cluster nodes is encrypted.
After completing the procedure, return to Deploying cluster servers and continue with Sign on to the admin console.