Describes how to enable security for the cluster, platform, ecosystem components, and network-based connections.
The following steps enable security for the cluster, wire-level encryption for the platform and ecosystem components, authentication for all network-based connections, and optionally, data at rest encryption on the cluster.
When you set up a cluster, run the configure.sh script on each node
that you want to add to the cluster. After you enable security, review the
System Behavior Changes After Enabling Security.
To enable security for the cluster, follow these steps in order:
The truststore password is generated when you run
/opt/mapr/server/configure.sh -genkeys. This password
is stored in the /opt/mapr/conf/ssl-server.xml and the
/opt/mapr/conf/ssl-client.xml files. For example:
<property>
<name>ssl.server.truststore.password</name>
<value>EfbNb2qPAW3iH4D_Foyl8jHWFPjEL8lD</value>
<description>Optional. Default value is "".
</description>
</property>
<property>
<name>ssl.client.truststore.password</name>
<value>EfbNb2qPAW3iH4D_Foyl8jHWFPjEL8lD</value>
<description>Optional. Default value is "".
</description>
</property>
Data Fabric clients use this password information. If you change the password,
you must copy the ssl-client.xml and
ssl_truststore files from the cluster to the client.
The upgrade instructions for each of the data-fabric clients include this
step.
/opt/mapr/server/manageSSLKeys.sh createrandompassword oldpasswordHere oldpassword is the password that is already present in the
/opt/mapr/conf/ssl-server.xml and the
/opt/mapr/conf/ssl-client.xml files.
The system then regenerates the password. The command returns the temporary location where the output is generated, the source files, and the destination where they are to be copied. Copy them manually as directed.
In certain situations, you may opt for variant of the basic procedure. Such situations include, but are not limited to the following:
configure.sh utility.When used without the -certdomain argument, the
configure.sh script discovers the domain name of the
node on which it is being executed using the hostname -d
command and then creates a 100-year self-signed certificate using the PKCS#1
v1.5 with SHA-512 hash function (SHA512withRSA) with a wildcard certificate
with the common name (CN) *.<domain>. For
example, if hostname -d returns the domain name
mycompany.com, then the CN of the certificate is
*.mycompany.com.
This certificate
works for all machines within the mycompany.com domain
and can therefore be copied to all cluster nodes as specified in Step 5
in the Basic Procedure.
Certificate generation fails if the host that you are running the
script from is configured without a domain name. To fix this, modify
your machine configuration so that hostname -d returns a
non-empty string and then run the configure.sh script.
Alternatively, re-run the script with the
-certdomain option as shown in Step 3 of the Basic Procedure:
/opt/mapr/server/configure.sh -secure -genkeys -certdomain <domain_name> -Z <Zookeeper_node_list> -C <CLDB_node_list> [ -N <cluster_name> ]
Generally, all machines within a cluster should belong to the same domain. In
the unusual case where you have a cluster with different machines belonging
to different domains, applications that perform hostname verification can
fail if you run the configure.sh script (as described in Step 3 of the Basic Procedure) to generate a
single-domain wildcard certificate. In this case, you must provide your own
multi-domain wildcard certificate and import the custom certificate into the
keystore as described in Importing a Certificate Authority Signed
(CA Signed) SSL Certificate Into a Data Fabric Cluster.
To import your own custom certificates into the keystore instead of using the self-signed certificates, see Importing a Certificate Authority Signed (CA Signed) SSL Certificate Into a Data Fabric Cluster.