부록 D. Red Hat Virtualization 및 암호화된 통신

D.1. Red Hat Virtualization Manager CA 인증서 교체

주의

/etc/pki 디렉터리 또는 하위 디렉토리에 대한 권한 및 소유권을 변경하지 마십시오. /etc/pki/etc/pki/ovirt-engine 디렉터리에 대한 권한은 기본값인 755 로 유지되어야 합니다.

조직의 타사 CA 인증서를 구성하여 HTTPS를 통해 연결하는 사용자와 Red Hat Virtualization Manager를 식별할 수 있습니다.

참고

HTTPS 연결에 타사 CA 인증서를 사용하는 경우 관리자와 호스트 간의 인증에 사용되는 인증서에는 영향을 미치지 않습니다. Manager에서 생성한 자체 서명된 인증서를 계속 사용합니다.

사전 요구 사항

  • 타사 CA 인증서입니다. 사용하려는 인증서를 발급한 CA(인증 기관)의 인증서입니다. PEM 파일로 제공됩니다. 인증서 체인은 루트 인증서까지 완료해야 합니다. 체인의 순서가 중요하며 마지막 중간 인증서에서 루트 인증서로 이동해야 합니다. 이 절차에서는 타사 CA 인증서가 /tmp/3rd-party-ca-cert.pem 에 제공되는 것으로 가정합니다.
  • Apache httpd에 사용할 개인 키입니다. 암호가 없어야 합니다. 이 절차에서는 /tmp/apache.key 에 있다고 가정합니다.
  • CA에서 발급한 인증서입니다. 이 절차에서는 /tmp/apache.cer 에 있다고 가정합니다.

P12 파일에서 CA에서 개인 키와 인증서를 받은 경우 다음 절차를 사용하여 압축을 풉니다. 다른 파일 형식에 대해서는 CA에 문의하십시오. 개인 키 및 인증서를 추출한 후 Red Hat Virtualization Manager Apache CA 인증서 교체를 진행합니다.

P12 번들에서 인증서 및 개인 키 추출

내부 CA는 내부적으로 생성된 키와 인증서를 /etc/pki/ovirt-engine/keys/apache.p12 에 P12 파일에 저장합니다. Red Hat은 새 파일을 동일한 위치에 저장할 것을 권장합니다. 다음 절차에서는 새로운 P12 파일이 /tmp/apache.p12 에 있다고 가정합니다.

  1. 현재 apache.p12 파일을 백업하십시오.

    # cp -p /etc/pki/ovirt-engine/keys/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12.bck
  2. 현재 파일을 새 파일로 바꿉니다.

    # cp /tmp/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12
  3. 필요한 위치에 개인 키와 인증서를 추출합니다. 파일이 암호로 보호된 경우 -passin pass:_password_ 를 추가하고 암호 를 필수 암호로 교체해야 합니다.

    # openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nocerts -nodes > /tmp/apache.key
    # openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nokeys > /tmp/apache.cer
중요

새로운 Red Hat Virtualization 설치의 경우 이 절차의 모든 단계를 완료해야 합니다. 상용 인증서가 이미 구성된 Red Hat Enterprise Virtualization 3.6 환경에서 업그레이드한 경우 1, 8 및 9 단계만 필요합니다.

Red Hat Virtualization Manager Apache CA 인증서 교체

  1. 셀프 호스트 엔진을 사용하는 경우 환경을 글로벌 유지 관리 모드로 설정합니다.

    # hosted-engine --set-maintenance --mode=global

    자세한 내용은 15.1절. “셀프 호스트 엔진 유지 관리”의 내용을 참조하십시오.

  2. 호스트 전체 신뢰 저장소에 CA 인증서를 추가합니다.

    # cp /tmp/3rd-party-ca-cert.pem /etc/pki/ca-trust/source/anchors
    # update-ca-trust
  3. Manager는 /etc/pki/ovirt-engine/apache-ca.pem 을 사용하도록 구성되어 있으며, 이는 /etc/pki/ovirt-engine/ca.pem 에 심볼릭 링크입니다. 심볼릭 링크를 제거합니다.

    # rm /etc/pki/ovirt-engine/apache-ca.pem
  4. CA 인증서를 /etc/pki/ovirt-engine/apache-ca.pem 으로 저장합니다.

    # cp /tmp/3rd-party-ca-cert.pem /etc/pki/ovirt-engine/apache-ca.pem
  5. 기존 개인 키 및 인증서를 백업합니다.

    # cp /etc/pki/ovirt-engine/keys/apache.key.nopass /etc/pki/ovirt-engine/keys/apache.key.nopass.bck
    # cp /etc/pki/ovirt-engine/certs/apache.cer /etc/pki/ovirt-engine/certs/apache.cer.bck
  6. 개인 키를 필요한 위치에 복사합니다.

    # cp /tmp/apache.key /etc/pki/ovirt-engine/keys/apache.key.nopass
  7. 개인 키 소유자를 root로 설정하고 권한을 0640 으로 설정합니다.

    # chown root:ovirt  /etc/pki/ovirt-engine/keys/apache.key.nopass
    # chmod 640 /etc/pki/ovirt-engine/keys/apache.key.nopass
  8. 필요한 위치에 인증서를 복사합니다.

    # cp /tmp/apache.cer /etc/pki/ovirt-engine/certs/apache.cer
  9. Apache 서버를 다시 시작합니다.

    # systemctl restart httpd.service
  10. 다음 매개변수를 사용하여 새 신뢰 저장소 구성 파일 /etc/ovirt-engine/engine.d/99-custom-truststore.conf 를 만듭니다.

    ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
    ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
  11. /etc/ovirt-engine/ovirt-websocket-proxy.conf.d/10-setup.conf 파일을 복사하고 10보다 큰 인덱스 번호(예: 99-setup.conf)로 이름을 바꿉니다. 새 파일에 다음 매개변수를 추가합니다.

    SSL_CERTIFICATE=/etc/pki/ovirt-engine/certs/apache.cer
    SSL_KEY=/etc/pki/ovirt-engine/keys/apache.key.nopass
  12. websocket-proxy 서비스를 다시 시작합니다.

    # systemctl restart ovirt-websocket-proxy.service
  13. /etc/ovirt-provider-ovn/conf.d/10-setup-provider-ovn.conf 파일을 수동으로 변경하거나 이전 설치의 구성 파일을 사용하는 경우 Manager가 여전히 /etc/pki/ovirt-engine/apache-ca.pem 을 인증서 소스로 사용하도록 구성되어 있는지 확인합니다.
  14. 다음 콘텐츠를 사용하여 새 파일 /etc/ovirt- engine-backup /engine-backup-config.d/update-system-wide-pki.sh를 생성하여 복원 시 시스템을 업데이트하도록 engine-backup을 활성화합니다.

    BACKUP_PATHS="${BACKUP_PATHS}
    /etc/ovirt-engine-backup"
    cp -f /etc/pki/ovirt-engine/apache-ca.pem
    /etc/pki/ca-trust/source/anchors/3rd-party-ca-cert.pem
    update-ca-trust
  15. ovirt-provider-ovn 서비스를 다시 시작합니다.

    # systemctl restart ovirt-provider-ovn.service
  16. ovirt-engine 서비스를 다시 시작합니다.

    # systemctl restart ovirt-engine.service
  17. 셀프 호스트 엔진을 사용하는 경우 글로벌 유지 관리 모드를 끕니다.

    # hosted-engine --set-maintenance --mode=none

이제 사용자가 HTTPS 트래픽을 암호화하는 데 사용되는 인증서의 진위 여부를 확인하지 않고도 관리 포털 및 VM 포털에 연결할 수 있습니다.