Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
Chapter 17. Converting your existing deployment to use TLS
You can configure your existing overcloud and undercloud endpoints to use TLS encryption. This approach uses novajoin to integrate your deployment with Red Hat Identity Management (IdM), allowing access to DNS, Kerberos, and certmonger. Each overcloud node uses a certmonger client to retrieve certificates for each service.
For more information on TLS, see the Security and Hardening Guide.
17.1. Requirements Link kopierenLink in die Zwischenablage kopiert!
-
For Red Hat OpenStack Platform 13, you must be running version
z8or higher. - You must have an existing IdM deployment, and it must also supply DNS services to the OpenStack deployment.
- The existing deployment must use FQDNs for public endpoints. Default configurations might use IP address-based endpoints, and will consequently generate IP address-based certificates; these must be changed to FQDNs before proceeding with these steps.
The overcloud and undercloud services will be unavailable for the duration of this procedure.
17.2. Reviewing your endpoints Link kopierenLink in die Zwischenablage kopiert!
By default, your existing Red Hat OpenStack Platform 13 overcloud does not encrypt certain endpoints with TLS. For example, this output includes URLs that use http instead of https; these are not encrypted:
The following sections explain how to encrypt these endpoints using TLS.
17.3. Apply workaround for known issue Link kopierenLink in die Zwischenablage kopiert!
There is currently a known issue for TLS Everywhere in-place upgrades, where overcloud nodes are consequently unable to enroll in IdM. As a workaround, remove /etc/ipa/ca.crt/ from all overcloud nodes before running the overcloud deploy. For more information, see https://bugzilla.redhat.com/show_bug.cgi?id=1732564.
For example, the following script is one way of applying the workaround. You might need to amend this to suit your deployment.
17.4. Configuring endpoints to use TLS Link kopierenLink in die Zwischenablage kopiert!
This section explains how to enable TLS endpoint encryption for an existing deployment, and then how to check that the endpoints have been correctly configured.
When enabling TLS everywhere, there are different upgrade paths available, depending on how your domains are structured. These examples use sample domain names to describe the upgrade paths:
-
Reuse the existing public endpoint certificates, and enable TLS everywhere on the
internalandadminendpoints where the overcloud domain (lab.local) matches the IdM domain (lab.local). -
Allow IdM to issue new public endpoints certificates, and enable TLS everywhere on the
internalandadminendpoints where the overcloud domain (lab.local) matches the IdM domain (lab.local). -
Reuse existing public endpoint certificates, and enable TLS everywhere on the
internalandadminendpoints where the overcloud domain (site1.lab.local) is a subdomain of the IdM domain (lab.local). -
Allow IdM to issue new public endpoints certificates, and enable TLS everywhere on the
internalandadminendpoints where the overcloud domain (site1.lab.local) is a subdomain of the IdM domain (lab.local).
The following procedures in this section explain how to configure this integration using the various combinations described above.
17.4.1. Configuring undercloud integration for deployments using the same domain as IdM Link kopierenLink in die Zwischenablage kopiert!
This procedure describes how to configure undercloud integration for deployments that use the same domain as IdM.
Red Hat OpenStack Platform uses novajoin to integrate with Red Hat Identity Management (IdM), which then issues and manages encryption certificates. In this procedure, you register the undercloud with IdM, generate a token, enable the token in the undercloud configuration, then re-run the undercloud and overcloud deployment scripts. For example:
Install
python-novajoinfor integration with IdM:sudo yum install python-novajoin
[stack@undercloud-0 ~]$ sudo yum install python-novajoinCopy to Clipboard Copied! Toggle word wrap Toggle overflow Run the
novajoinconfiguration script and supply the configuration details for your IdM deployment. For example:sudo novajoin-ipa-setup --principal admin --password ComplexRedactedPassword \ --server ipa.lab.local --realm lab.local --domain lab.local \ --hostname undercloud-0.lab.local --precreate
[stack@undercloud-0 ~]$ sudo novajoin-ipa-setup --principal admin --password ComplexRedactedPassword \ --server ipa.lab.local --realm lab.local --domain lab.local \ --hostname undercloud-0.lab.local --precreate ... 0Uvua6NyIWVkfCSTOmwbdAobsqGH2GONRJrW24MoQ4wgCopy to Clipboard Copied! Toggle word wrap Toggle overflow This output includes a one time password (OTP) for IdM, which will be a different value for your deployment.
Configure the undercloud to use
novajoin, add the one-time password (OTP), use the IdM IP address for DNS, and describe the overcloud domain. You will need to adjust this example for your deployment:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Install the
novajoinservices in the undercloud:openstack undercloud install
[stack@undercloud ~]$ openstack undercloud installCopy to Clipboard Copied! Toggle word wrap Toggle overflow Add the overcloud IP address to DNS. You will need to amend this example to suit your deployment:
Note: Check the overcloud’s
network-environment.yaml, and choose a VIP within each network’s range.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
public_vip.yamlmapping for all the endpoints:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.4.2. Configuring overcloud integration for deployments that use the same domain as IdM, and retain the existing public endpoint certificates Link kopierenLink in die Zwischenablage kopiert!
Make sure the following parameters exist in your
openstack overcloud deploycommand (with valid settings) and then re-run the deployment command:- ` --ntp-server` - If not already set, specify the NTP server to suit your environment. The IdM server should be running ntp.
-
cloud-names.yaml- Contains the FQDNs (not IPs) from the initial deployment command. -
enable-tls.yaml- Contains the new overcloud certificate. For an example, see https://github.com/openstack/tripleo-heat-templates/blob/master/environments/ssl/enable-tls.yaml. -
public_vip.yaml- The maps the endpoints to a specific ip so dns can match. -
enable-internal-tls.yaml- Enables TLS for internal endpoints. -
tls-everywhere-endpoints-dns.yaml- Configures TLS endpoints using DNS names. You can review the contents of this file to check the configuration scope. -
haproxy-internal-tls-certmonger.yaml- certmonger will manage the internal certs in haproxy. inject-trust-anchor.yaml- Adds the root certificate authority. This is only needed when the certificates rely on a CA chain that is not already part of the common set used by default; for example, when using self-signed.For example:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteExamples of these environment files can be found here: https://github.com/openstack/tripleo-heat-templates/tree/master/environments/ssl.
17.4.3. Configuring overcloud integration for deployments that use the same domain as IdM, and replace the existing public endpoint certificates with an IdM generated certificate Link kopierenLink in die Zwischenablage kopiert!
Make sure the following parameters exist in your
openstack overcloud deploycommand (with valid settings) and then re-run the deployment command:- ` --ntp-server` - If not already set, specify the NTP server to suit your environment. The IdM server should be running ntp.
-
cloud-names.yaml- Contains the FQDNs (not IPs) from the initial deployment command. -
enable-tls.yaml- Contains the new overcloud certificate. For an example, see https://github.com/openstack/tripleo-heat-templates/blob/master/environments/ssl/enable-tls.yaml. -
public_vip.yaml- The maps the endpoints to a specific ip so dns can match. -
enable-internal-tls.yaml- Enables TLS for internal endpoints. -
tls-everywhere-endpoints-dns.yaml- Configures TLS endpoints using DNS names. You can review the contents of this file to check the configuration scope. -
haproxy-public-tls-certmonger.yaml- certmonger will manage the internal and public certs in haproxy. inject-trust-anchor.yaml- Adds the root certificate authority. This is only needed when the certificates rely on a CA chain that is not already part of the common set used by default; for example, when using self-signed.For example:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteExamples of these environment files can be found at https://github.com/openstack/tripleo-heat-templates/tree/master/environments/ssl.
The template enable-internal-tls.j2.yaml is referenced as enable-internal-tls.yaml in the overcloud deploy command.
In addition, the old public endpoint certificates in enable-tls.yaml will be replaced by certmonger with haproxy-public-tls-certmonger.yaml, however, this file must still be referenced in the upgrade process.
17.4.4. Configuring undercloud integration for deployments that use an IdM subdomain Link kopierenLink in die Zwischenablage kopiert!
This procedure explains how to configure undercloud integration for deployments that use an IdM subdomain.
Red Hat OpenStack Platform uses novajoin to integrate with Red Hat Identity Management (IdM), which then issues and manages encryption certificates. In this procedure, you register the undercloud with IdM, generate a token, enable the token in the undercloud configuration, then re-run the undercloud and overcloud deployment scripts. For example:
Install
python-novajoinfor integration with IdM:[stack@undercloud-0 ~]$Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the
novajoinconfiguration script and supply the configuration details for your IdM deployment. For example:sudo novajoin-ipa-setup --principal admin --password ComplexRedactedPassword \ --server ipa.lab.local --realm lab.local --domain lab.local \ --hostname undercloud-0.site1.lab.local --precreate
[stack@undercloud-0 ~]$ sudo novajoin-ipa-setup --principal admin --password ComplexRedactedPassword \ --server ipa.lab.local --realm lab.local --domain lab.local \ --hostname undercloud-0.site1.lab.local --precreate ... 0Uvua6NyIWVkfCSTOmwbdAobsqGH2GONRJrW24MoQ4wgCopy to Clipboard Copied! Toggle word wrap Toggle overflow This output includes a one time password (OTP) for IdM, which will be a different value for your deployment.
Configure the undercloud to use
novajoin, and add the OTP, IdM IP for DNS and NTP, and overcloud domain:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configure the undercloud to use
novajoin, and add the OTP, IdM IP for DNS, and overcloud domain:vi hiera_override.yaml
[stack@undercloud-0 ~]$ vi hiera_override.yaml nova::metadata::novajoin::api::ipa_domain: site1.lab.local ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Install the
novajoinservices in the undercloud:openstack undercloud install
[stack@undercloud ~]$ openstack undercloud installCopy to Clipboard Copied! Toggle word wrap Toggle overflow Add the overcloud IP address to DNS. You will need to amend this example to suit your deployment:
Note: Check the overcloud’s
network-environment.yaml, and choose a VIP within each network’s range.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
public_vip.yamlmapping for each of the endpoints. For example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
extras.yamlmapping for each of the endpoints. For example:parameter_defaults: MakeHomeDir: True IdMNoNtpSetup: false IdMDomain: redhat.local DnsSearchDomains: ["site1.redhat.local","redhat.local"]
parameter_defaults: MakeHomeDir: True IdMNoNtpSetup: false IdMDomain: redhat.local DnsSearchDomains: ["site1.redhat.local","redhat.local"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.4.5. Configuring undercloud integration for deployments that use an IdM subdomain, and retain the existing public endpoint certificates Link kopierenLink in die Zwischenablage kopiert!
This procedure explains how to configure undercloud integration for deployments that use an IdM subdomain, and still retain the existing public endpoint certificates.
Make sure the following parameters exist in your
openstack overcloud deploycommand (with valid settings) and then re-run the deployment command:- ` --ntp-server` - If not already set, specify the NTP server to suit your environment. The IdM server should be running ntp.
-
cloud-names.yaml- Contains the FQDNs (not IPs) from the initial deployment command. -
enable-tls.yaml- Contains the new overcloud certificate. For an example, see https://github.com/openstack/tripleo-heat-templates/blob/master/environments/ssl/enable-tls.yaml. -
public_vip.yaml- Contains endpoint maps to a specific ip so dns can match. - `extras.yaml ` - Contains settings for pam to make home directorys on login, no ntp setup, the base IdM domain, and the dns search for resolv.conf.
-
enable-internal-tls.yaml- Enables TLS for internal endpoints. -
tls-everywhere-endpoints-dns.yaml- Configures TLS endpoints using DNS names. You can review the contents of this file to check the configuration scope. -
haproxy-internal-tls-certmonger.yaml- certmonger will manage the internal certs in haproxy. inject-trust-anchor.yaml- Adds the root certificate authority. This is only needed when the certificates rely on a CA chain that is not already part of the common set used by default; for example, when using self-signed.For example:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteExamples of these environment files can be found here: https://github.com/openstack/tripleo-heat-templates/tree/master/environments/ssl.
17.4.6. Configuring undercloud integration for deployments that use an IdM subdomain, and replace the existing public endpoint certificates with an IdM generated certificate Link kopierenLink in die Zwischenablage kopiert!
This procedure explains how to configure undercloud integration for deployments that use an IdM subdomain, and how to replace the existing public endpoint certificates with an IdM generated certificate.
Make sure the following parameters exist in your
openstack overcloud deploycommand (with valid settings) and then re-run the deployment command:- ` --ntp-server` - If not already set, specify the NTP server to suit your environment. The IdM server should be running ntp.
-
cloud-names.yaml- Contains the FQDNs (not IPs) from the initial deployment command. -
enable-tls.yaml- Contains the new overcloud certificate. For an example, see https://github.com/openstack/tripleo-heat-templates/blob/master/environments/ssl/enable-tls.yaml. -
public_vip.yaml- The maps the endpoints to a specific ip so dns can match. - `extras.yaml ` - Contains settings for pam to make home directorys on login, no ntp setup, the base IdM domain, and the dns search for resolv.conf.
-
enable-internal-tls.yaml- Enables TLS for internal endpoints. -
tls-everywhere-endpoints-dns.yaml- Configures TLS endpoints using DNS names. You can review the contents of this file to check the configuration scope. -
haproxy-public-tls-certmonger.yaml- certmonger will manage the internal and public certs in haproxy. inject-trust-anchor.yaml- Adds the root certificate authority. This is only needed when the certificates rely on a CA chain that is not already part of the common set used by default; for example, when using self-signed.For example:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteExamples of these environment files can be found here: https://github.com/openstack/tripleo-heat-templates/tree/master/environments/ssl.
In this example, the template enable-internal-tls.j2.yaml is referenced as enable-internal-tls.yaml in the overcloud deploy command. In addition, the old public endpoint certificates in enable-tls.yaml will be replaced by certmonger using haproxy-public-tls-certmonger.yaml, however, this file must still be referenced in the upgrade process.
17.5. Checking TLS encryption Link kopierenLink in die Zwischenablage kopiert!
Once the overcloud re-deployment has completed, check that all endpoints are now encrypted with TLS. In this example, all endpoints are configured to use https, indicating that they are using TLS encryption: