17.4. TLS를 사용하도록 끝점 구성


이 섹션에서는 기존 배포에 대해 TLS 엔드포인트 암호화를 활성화하는 방법과 엔드포인트가 올바르게 구성되었는지 확인하는 방법을 설명합니다.

어디에서든 TLS를 활성화할 때 도메인의 구조에 따라 다양한 업그레이드 경로를 사용할 수 있습니다. 다음 예제에서는 샘플 도메인 이름을 사용하여 업그레이드 경로를 설명합니다.

  • 기존 공용 엔드포인트 인증서를 재사용하고, Overcloud 도메인(lab.local)이 IdM 도메인( lab.local)과 일치하는 내부관리 엔드포인트의 모든 위치에서 TLS를 활성화합니다.
  • IdM에서 새 공용 엔드포인트 인증서를 발급하고, 오버클라우드 도메인(lab.local)이 IdM 도메인( lab.local)과 일치하는 내부관리 끝점의 모든 위치에서 TLS를 사용하도록 허용합니다.
  • 기존 공용 엔드포인트 인증서를 재사용하고, Overcloud 도메인(site1.lab.local)이 IdM 도메인( lab.local)의 하위 도메인인 내부관리 끝점의 모든 위치에서TLS를 활성화합니다.
  • IdM에서 새 공용 엔드포인트 인증서를 발급하고, Overcloud 도메인(site1.lab.local)이 IdM 도메인( lab.local)의 하위 도메인인 내부관리 끝점의 모든 위치에서TLS를 사용하도록 허용합니다.

이 섹션의 다음 절차에서는 위에서 설명한 다양한 조합을 사용하여 이 통합을 구성하는 방법에 대해 설명합니다.

다음 절차에서는 IdM과 동일한 도메인을 사용하는 배포에 언더클라우드 통합을 구성하는 방법을 설명합니다.

Red Hat OpenStack Platform은 novajoin 을 사용하여 Red Hat IdM(Identity Management)과 통합되어 암호화 인증서를 발급하고 관리합니다. 이 절차에서는 언더클라우드를 IdM에 등록하고, 토큰을 생성하고, 언더클라우드 설정에서 토큰을 활성화한 다음, 언더클라우드 및 오버클라우드 배포 스크립트를 다시 실행합니다. 예를 들면 다음과 같습니다.

  1. IdM과의 통합을 위해 python-novajoin 을 설치합니다.

    [stack@undercloud-0 ~]$ sudo yum install python-novajoin
    Copy to Clipboard Toggle word wrap
  2. novajoin 구성 스크립트를 실행하고 IdM 배포에 대한 구성 세부 정보를 제공합니다. 예를 들면 다음과 같습니다.

    [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
    ...
    0Uvua6NyIWVkfCSTOmwbdAobsqGH2GONRJrW24MoQ4wg
    Copy to Clipboard Toggle word wrap

    이 출력에는 IdM용 OTP(한 번 암호)가 포함되어 있습니다. 이 값은 배포에 다른 값이 됩니다.

  3. novajoin 을 사용하도록 Undercloud를 구성하고, 일회성 암호(OTP)를 추가하고, DNS에 IdM IP 주소를 사용하고, Overcloud 도메인을 설명합니다. 배포를 위해 이 예제를 조정해야 합니다.

    [stack@undercloud ~]$ vi undercloud.conf
    ...
    enable_novajoin = true
    ipa_otp = 0Uvua6NyIWVkfCSTOmwbdAobsqGH2GONRJrW24MoQ4wg
    undercloud_hostname = undercloud-0.lab.local
    undercloud_nameservers = X.X.X.X
    overcloud_domain_name = lab.local
    ...
    Copy to Clipboard Toggle word wrap
  4. 언더클라우드에 novajoin 서비스를 설치합니다.

    [stack@undercloud ~]$ openstack undercloud install
    Copy to Clipboard Toggle word wrap
  5. Overcloud IP 주소를 DNS에 추가합니다. 배포에 맞게 이 예제를 수정해야 합니다.

    참고: 오버클라우드의 network-environment.yaml 을 확인하고 각 네트워크 범위 내에서 VIP를 선택합니다.

    [root@ipa ~]$ ipa dnsrecord-add lab.local overcloud --a-rec=10.0.0.101
    [root@ipa ~]# ipa dnszone-add ctlplane.lab.local
    [root@ipa ~]# ipa dnsrecord-add ctlplane.lab.local overcloud --a-rec 192.168.24.101
    [root@ipa ~]# ipa dnszone-add internalapi.lab.local
    [root@ipa ~]# ipa dnsrecord-add internalapi.lab.local overcloud --a-rec 172.17.1.101
    [root@ipa ~]# ipa dnszone-add storage.lab.local
    [root@ipa ~]# ipa dnsrecord-add storage.lab.local overcloud --a-rec 172.17.3.101
    [root@ipa ~]# ipa dnszone-add storagemgmt.lab.local
    [root@ipa ~]# ipa dnsrecord-add storagemgmt.lab.local overcloud --a-rec 172.17.4.101
    Copy to Clipboard Toggle word wrap
  6. 모든 끝점에 대한 public_vip.yaml 매핑을 생성합니다.

    Parameter_defaults:
        PublicVirtualFixedIPs: [{'ip_address':'10.0.0.101'}]
        ControlFixedIPs: [{'ip_address':'192.168.24.101'}]
        InternalApiVirtualFixedIPs: [{'ip_address':'172.17.1.101'}]
        StorageVirtualFixedIPs: [{'ip_address':'172.17.3.101'}]
        StorageMgmtVirtualFixedIPs: [{'ip_address':'172.17.4.101'}]
        RedisVirtualFixedIPs: [{'ip_address':'172.17.1.102'}]
    Copy to Clipboard Toggle word wrap
  1. openstack overcloud deploy 명령(유효한 설정 포함)에 다음 매개변수가 있는지 확인한 다음 배포 명령을 다시 실행합니다.

    • ' --NTP-server' - 아직 설정되지 않은 경우 환경에 맞게 NTP 서버를 지정합니다. IdM 서버가 ntp를 실행해야 합니다.
    • cloud-names.yaml - 초기 배포 명령에서 FQDN(IP 아님)을 포함합니다.
    • enable-tls.yaml - 새 오버클라우드 인증서가 포함되어 있습니다. 예를 들어 https://github.com/openstack/tripleo-heat-templates/blob/master/environments/ssl/enable-tls.yaml 참조하십시오.
    • public_vip.yaml - dns가 일치하도록 엔드포인트를 특정 ip에 매핑합니다.
    • enable-internal-tls.yaml - 내부 엔드포인트에 TLS를 활성화합니다.
    • tls-everywhere-endpoints-dns.yaml - DNS 이름을 사용하여 TLS 엔드포인트를 구성합니다. 이 파일의 내용을 검토하여 구성 범위를 확인할 수 있습니다.
    • haproxy-internal-tls-certmonger.yaml - certmonger는 haproxy의 내부 인증서를 관리합니다.
    • inject-trust-anchor.yaml - 루트 인증 기관을 추가합니다. 인증서가 기본적으로 사용되는 일반 세트의 일부가 아닌 CA 체인을 사용하는 경우에만 필요합니다(예: 자체 서명 사용).

      예를 들면 다음과 같습니다.

      [ stack@undercloud ~]$ openstack overcloud deploy \
      ...
        --ntp-server 10.13.57.78 \
        -e /home/stack/cloud-names.yaml \
        -e /home/stack/enable-tls.yaml \
        -e /home/stack/public_vip.yaml \
        -e <tripleo-heat-templates>/environments/ssl/enable-internal-tls.yaml \
        -e <tripleo-heat-templates>/environments/ssl/tls-everywhere-endpoints-dns.yaml \
        -e <tripleo-heat-templates>/environments/services/haproxy-internal-tls-certmonger.yaml \
        -e /home/stack/inject-trust-anchor.yaml
      ...
      Copy to Clipboard Toggle word wrap
      참고
  1. openstack overcloud deploy 명령(유효한 설정 포함)에 다음 매개변수가 있는지 확인한 다음 배포 명령을 다시 실행합니다.

    • ' --NTP-server' - 아직 설정되지 않은 경우 환경에 맞게 NTP 서버를 지정합니다. IdM 서버가 ntp를 실행해야 합니다.
    • cloud-names.yaml - 초기 배포 명령에서 FQDN(IP 아님)을 포함합니다.
    • enable-tls.yaml - 새 오버클라우드 인증서가 포함되어 있습니다. 예를 들어 https://github.com/openstack/tripleo-heat-templates/blob/master/environments/ssl/enable-tls.yaml 참조하십시오.
    • public_vip.yaml - dns가 일치하도록 엔드포인트를 특정 ip에 매핑합니다.
    • enable-internal-tls.yaml - 내부 엔드포인트에 TLS를 활성화합니다.
    • tls-everywhere-endpoints-dns.yaml - DNS 이름을 사용하여 TLS 엔드포인트를 구성합니다. 이 파일의 내용을 검토하여 구성 범위를 확인할 수 있습니다.
    • haproxy-public-tls-certmonger.yaml - certmonger는 haproxy에서 내부 및 공용 인증서를 관리합니다.
    • inject-trust-anchor.yaml - 루트 인증 기관을 추가합니다. 인증서가 기본적으로 사용되는 일반 세트의 일부가 아닌 CA 체인을 사용하는 경우에만 필요합니다(예: 자체 서명 사용).

      예를 들면 다음과 같습니다.

      [ stack@undercloud ~]$ openstack overcloud deploy \
      ...
        --ntp-server 10.13.57.78 \
        -e /home/stack/cloud-names.yaml \
        -e /home/stack/enable-tls.yaml \
        -e /home/stack/public_vip.yaml \
        -e <tripleo-heat-templates>/environments/ssl/enable-internal-tls.yaml \
        -e <tripleo-heat-templates>/environments/ssl/tls-everywhere-endpoints-dns.yaml \
        -e <tripleo-heat-templates>/environments/services/haproxy-public-tls-certmonger.yaml \
        -e /home/stack/inject-trust-anchor.yaml
      ...
      Copy to Clipboard Toggle word wrap
      참고

      이러한 환경 파일의 예는 https://github.com/openstack/tripleo-heat-templates/tree/master/environments/ssl 에서 찾을 수 있습니다.

참고

템플릿 enable-internal-tls.j2.yaml 은 오버클라우드 배포 명령에서 enable-internal-tls.yaml 로 참조됩니다.

또한 enable-tls.yaml 의 이전 공용 엔드포인트 인증서는 certmonger로 haproxy-public-tls-certmonger.yaml 로 교체되지만 업그레이드 프로세스에서 이 파일을 참조해야 합니다.

다음 절차에서는 IdM 하위 도메인을 사용하는 배포를 위해 언더클라우드 통합을 구성하는 방법을 설명합니다.

Red Hat OpenStack Platform은 novajoin 을 사용하여 Red Hat IdM(Identity Management)과 통합되어 암호화 인증서를 발급하고 관리합니다. 이 절차에서는 언더클라우드를 IdM에 등록하고, 토큰을 생성하고, 언더클라우드 설정에서 토큰을 활성화한 다음, 언더클라우드 및 오버클라우드 배포 스크립트를 다시 실행합니다. 예를 들면 다음과 같습니다.

  1. IdM과의 통합을 위해 python-novajoin 을 설치합니다.

    [stack@undercloud-0 ~]$
    Copy to Clipboard Toggle word wrap
  2. novajoin 구성 스크립트를 실행하고 IdM 배포에 대한 구성 세부 정보를 제공합니다. 예를 들면 다음과 같습니다.

    [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
    ...
    0Uvua6NyIWVkfCSTOmwbdAobsqGH2GONRJrW24MoQ4wg
    Copy to Clipboard Toggle word wrap

    이 출력에는 IdM용 OTP(한 번 암호)가 포함되어 있습니다. 이 값은 배포에 다른 값이 됩니다.

  3. novajoin 을 사용하도록 언더클라우드를 구성하고 DNS 및 NTP용 OTP, IdM IP 및 오버클라우드 도메인을 추가합니다.

    [stack@undercloud ~]$ vi undercloud.conf
    …
    [DEFAULT]
    undercloud_ntp_servers=X.X.X.X
    hieradata_override = /home/stack/hiera_override.yaml
    enable_novajoin = true
    ipa_otp = 0Uvua6NyIWVkfCSTOmwbdAobsqGH2GONRJrW24MoQ4wg
    undercloud_hostname = undercloud-0.site1.lab.local
    undercloud_nameservers = X.X.X.X
    overcloud_domain_name = site1.lab.local
    ...
    Copy to Clipboard Toggle word wrap
  4. novajoin 을 사용하도록 언더클라우드를 구성하고 DNS 및 오버클라우드 도메인에 OTP, IdM IP를 추가합니다.

    [stack@undercloud-0 ~]$ vi hiera_override.yaml
    nova::metadata::novajoin::api::ipa_domain: site1.lab.local
    ...
    Copy to Clipboard Toggle word wrap
  5. 언더클라우드에 novajoin 서비스를 설치합니다.

    [stack@undercloud ~]$ openstack undercloud install
    Copy to Clipboard Toggle word wrap
  6. Overcloud IP 주소를 DNS에 추가합니다. 배포에 맞게 이 예제를 수정해야 합니다.

    참고: 오버클라우드의 network-environment.yaml 을 확인하고 각 네트워크 범위 내에서 VIP를 선택합니다.

    [root@ipa ~]$ ipa dnsrecord-add site1.lab.local overcloud --a-rec=10.0.0.101
    [root@ipa ~]# ipa dnszone-add site1.ctlplane.lab.local
    [root@ipa ~]# ipa dnsrecord-add site1.ctlplane.lab.local overcloud --a-rec 192.168.24.101
    [root@ipa ~]# ipa dnszone-add site1.internalapi.lab.local
    [root@ipa ~]# ipa dnsrecord-add site1.internalapi.lab.local overcloud --a-rec 172.17.1.101
    [root@ipa ~]# ipa dnszone-add site1.storage.lab.local
    [root@ipa ~]# ipa dnsrecord-add site1.storage.lab.local overcloud --a-rec 172.17.3.101
    [root@ipa ~]# ipa dnszone-add site1.storagemgmt.lab.local
    [root@ipa ~]# ipa dnsrecord-add site1.storagemgmt.lab.local overcloud --a-rec 172.17.4.101
    Copy to Clipboard Toggle word wrap
  7. 각 엔드포인트에 대한 public_vip.yaml 매핑을 생성합니다. 예를 들면 다음과 같습니다.

    Parameter_defaults:
        PublicVirtualFixedIPs: [{'ip_address':'10.0.0.101'}]
        ControlFixedIPs: [{'ip_address':'192.168.24.101'}]
        InternalApiVirtualFixedIPs: [{'ip_address':'172.17.1.101'}]
        StorageVirtualFixedIPs: [{'ip_address':'172.17.3.101'}]
        StorageMgmtVirtualFixedIPs: [{'ip_address':'172.17.4.101'}]
        RedisVirtualFixedIPs: [{'ip_address':'172.17.1.102'}]
    Copy to Clipboard Toggle word wrap
  8. 각 엔드포인트에 대해 extras.yaml 매핑을 생성합니다. 예를 들면 다음과 같습니다.

    parameter_defaults:
      MakeHomeDir: True
      IdMNoNtpSetup: false
      IdMDomain: redhat.local
      DnsSearchDomains: ["site1.redhat.local","redhat.local"]
    Copy to Clipboard Toggle word wrap

다음 절차에서는 IdM 하위 도메인을 사용하고 기존 공용 엔드포인트 인증서를 유지하는 배포를 위해 Undercloud 통합을 구성하는 방법을 설명합니다.

  1. openstack overcloud deploy 명령(유효한 설정 포함)에 다음 매개변수가 있는지 확인한 다음 배포 명령을 다시 실행합니다.

    • ' --NTP-server' - 아직 설정되지 않은 경우 환경에 맞게 NTP 서버를 지정합니다. IdM 서버가 ntp를 실행해야 합니다.
    • cloud-names.yaml - 초기 배포 명령에서 FQDN(IP 아님)을 포함합니다.
    • enable-tls.yaml - 새 오버클라우드 인증서가 포함되어 있습니다. 예를 들어 https://github.com/openstack/tripleo-heat-templates/blob/master/environments/ssl/enable-tls.yaml 참조하십시오.
    • public_vip.yaml - dns가 일치하도록 엔드포인트가 특정 ip에 매핑됩니다.
    • 'extras.yaml ' - 로그인 시 홈 디렉토리를 만들고, ntp 설정, 기본 IdM 도메인 및 dns에서 resolv.conf를 검색하는 설정이 포함되어 있습니다.
    • enable-internal-tls.yaml - 내부 엔드포인트에 TLS를 활성화합니다.
    • tls-everywhere-endpoints-dns.yaml - DNS 이름을 사용하여 TLS 엔드포인트를 구성합니다. 이 파일의 내용을 검토하여 구성 범위를 확인할 수 있습니다.
    • haproxy-internal-tls-certmonger.yaml - certmonger는 haproxy의 내부 인증서를 관리합니다.
    • inject-trust-anchor.yaml - 루트 인증 기관을 추가합니다. 인증서가 기본적으로 사용되는 일반 세트의 일부가 아닌 CA 체인을 사용하는 경우에만 필요합니다(예: 자체 서명 사용).

      예를 들면 다음과 같습니다.

      [ stack@undercloud ~]$ openstack overcloud deploy \
      ...
        --ntp-server 10.13.57.78 \
        -e /home/stack/cloud-names.yaml \
        -e /home/stack/enable-tls.yaml \
        -e /home/stack/public_vip.yaml \
        -e /home/stack/extras.yaml \
        -e <tripleo-heat-templates>/environments/ssl/enable-internal-tls.yaml \
        -e <tripleo-heat-templates>/environments/ssl/tls-everywhere-endpoints-dns.yaml \
        -e <tripleo-heat-templates>/environments/services/haproxy-internal-tls-certmonger.yaml \
        -e /home/stack/inject-trust-anchor.yaml
      ...
      Copy to Clipboard Toggle word wrap
      참고

다음 절차에서는 IdM 하위 도메인을 사용하는 배포에 언더클라우드 통합을 구성하는 방법과 기존 공용 엔드포인트 인증서를 IdM 생성 인증서로 바꾸는 방법을 설명합니다.

  1. openstack overcloud deploy 명령(유효한 설정 포함)에 다음 매개변수가 있는지 확인한 다음 배포 명령을 다시 실행합니다.

    • ' --NTP-server' - 아직 설정되지 않은 경우 환경에 맞게 NTP 서버를 지정합니다. IdM 서버가 ntp를 실행해야 합니다.
    • cloud-names.yaml - 초기 배포 명령에서 FQDN(IP 아님)을 포함합니다.
    • enable-tls.yaml - 새 오버클라우드 인증서가 포함되어 있습니다. 예를 들어 https://github.com/openstack/tripleo-heat-templates/blob/master/environments/ssl/enable-tls.yaml 참조하십시오.
    • public_vip.yaml - dns가 일치하도록 엔드포인트를 특정 ip에 매핑합니다.
    • 'extras.yaml ' - 로그인 시 홈 디렉토리를 만들고, ntp 설정, 기본 IdM 도메인 및 dns에서 resolv.conf를 검색하는 설정이 포함되어 있습니다.
    • enable-internal-tls.yaml - 내부 엔드포인트에 TLS를 활성화합니다.
    • tls-everywhere-endpoints-dns.yaml - DNS 이름을 사용하여 TLS 엔드포인트를 구성합니다. 이 파일의 내용을 검토하여 구성 범위를 확인할 수 있습니다.
    • haproxy-public-tls-certmonger.yaml - certmonger는 haproxy에서 내부 및 공용 인증서를 관리합니다.
    • inject-trust-anchor.yaml - 루트 인증 기관을 추가합니다. 인증서가 기본적으로 사용되는 일반 세트의 일부가 아닌 CA 체인을 사용하는 경우에만 필요합니다(예: 자체 서명 사용).

      예를 들면 다음과 같습니다.

      [ stack@undercloud ~]$ openstack overcloud deploy \
      ...
        --ntp-server 10.13.57.78 \
        -e /home/stack/cloud-names.yaml \
        -e /home/stack/enable-tls.yaml \
        -e /home/stack/public_vip.yaml \
        -e /home/stack/extras.yaml \
        -e <tripleo-heat-templates>/environments/ssl/enable-internal-tls.yaml \
        -e <tripleo-heat-templates>/environments/ssl/tls-everywhere-endpoints-dns.yaml \
        -e <tripleo-heat-templates>/environments/services/haproxy-public-tls-certmonger.yaml \
        -e /home/stack/inject-trust-anchor.yaml
      ...
      Copy to Clipboard Toggle word wrap
      참고
참고

이 예에서 enable-internal-tls.j2.yaml 템플릿은 오버클라우드 deploy 명령에서 enable-internal-tls.yaml 로 참조됩니다. 또한 enable-tls.yaml 의 이전 공용 엔드포인트 인증서는 haproxy-public-tls-certmonger.yaml을 사용하여 certmonger 로 교체되지만 이 파일은 업그레이드 프로세스에서 계속 참조해야 합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat