Chapter 5. TLS Encryption Configuration

Red Hat Gluster Storage Web Administration supports etcd’s TLS-based security model which supports authentication and encryption of traffic between etcd and Web Administration system components.

By default, etcd functions without authentication and encryption but it is recommended to use TLS authentication for client-server encryption.

5.1. Prerequisites

The tendrl-ansible installation of Web Administration does not generate and deploy encryption certificates and keys. To configure etcd TLS client-server authentication, generate and deploy encryption certificates on all the nodes of the cluster before executing tendrl-ansible based Web Administration installation.

Before setting up the Transport Layer Security (TLS ) encryption, ensure the following encryption components are generated:

Certificate Authority (CA) Certificate

Generate a CA certificate either self-signed or signed by a trusted Certificate Authority (CA). For instructions on generating a CA certificate, see Creating Your Own Certificates section of the Red Hat AMQ Security Guide.

Private Keys

Generate a private key and a client certificate for each storage node and the Web Administration server. For more information, see the Creating and Managing Encryption Keys section of the Red Hat Enterprise Linux Security Guide. On each Web Administration managed storage node, and on the Web Administration server, place the PEM-encoded private key and the client/CA certificates in a secure place that is only accessible by the Web Administration server’s root user.

5.2. Configuring TLS Encryption

After generating and placing the TLS certificate files in the preferred directory, update the value of the Ansible variables in the site.yml file with the respective file paths of the certificate files.

In the site.yml file, add and modify the etcd TLS variables.

etcd_tls_client_auth: this variable is to enable or disable TLS authentication.

etcd_cert_file: certificate used for SSL/TLS connections to etcd. When this option is turned on, advertise-client-urls can use the HTTPS schema.

etcd_key_file: key for the certificate which must be unencrypted.

etcd_trusted_ca_file: the trusted Certificate Authority.

Configuring TLS

  1. Open the site.yml playbook file.
  2. Set the value for etcd_tls_client_auth variable to True for both the Ansible roles: tendrl_server and gluster_servers. By default, the value of this variable is False.
  3. Edit the file path for the etcd_cert_file variable as per required. The default value is: /etc/pki/tls/certs/etcd.crt
  4. Edit the file path for etcd_key_file variable as per required. The default value is: /etc/pki/tls/private/etcd.key
  5. Edit the file path for the etcd_trusted_ca_file variable. The default value is: /etc/pki/tls/certs/ca-etcd.crt
  6. Continue the Web Administration installation process by following the Web Administration Installation chapter.