4장. 인증서 구성

4.1. 기본 수신 인증서 교체

4.1.1. 기본 수신 인증서 이해

기본적으로 OpenShift Container Platform에서는 Ingress Operator를 사용하여 내부 CA를 생성하고 .apps 하위 도메인의 애플리케이션에 유효한 와일드카드 인증서를 발급합니다. 웹 콘솔과 CLI도 모두 이 인증서를 사용합니다.

내부 인프라 CA 인증서는 자체 서명됩니다. 이 프로세스는 일부 보안 또는 PKI 팀에서는 나쁜 습관으로 인식할 수 있지만 위험이 거의 없습니다. 이러한 인증서를 암시적으로 신뢰하는 유일한 클라이언트는 클러스터 내의 다른 구성요소입니다. 기본 와일드카드 인증서를 컨테이너 사용자 공간에서 제공한 대로 이미 CA 번들에 포함된 공용 CA에서 발행한 인증서로 교체하면 외부 클라이언트가 .apps 하위 도메인에서 실행되는 애플리케이션에 안전하게 연결할 수 있습니다.

4.1.2. 기본 수신 인증서 교체

.apps 하위 도메인에 있는 애플리케이션의 기본 수신 인증서를 교체할 수 있습니다. 인증서를 교체하고 나면 웹 콘솔 및 CLI를 포함한 모든 애플리케이션에는 지정된 인증서에서 제공하는 암호화가 생깁니다.

사전 요구 사항

  • 정규화된 .apps 하위 도메인 및 해당 개인 키에 맞는 와일드카드 인증서가 있어야 합니다. 각각은 별도의 PEM 형식 파일이어야 합니다.
  • 개인 키는 암호화되지 않아야 합니다. 키가 암호화된 경우 OpenShift Container Platform으로 가져오기 전에 키의 암호를 해독합니다.
  • 인증서에는 *.apps.<clustername>.<domain>을 표시하는 subjectAltName 확장자가 포함되어야 합니다.
  • 인증서 파일은 체인에 하나 이상의 인증서를 포함할 수 있습니다. 와일드카드 인증서는 파일에서 첫 번째 인증서여야 합니다. 그런 다음 중간 인증서가 올 수 있으며 파일은 루트 CA 인증서로 끝나야 합니다.
  • 루트 CA 인증서를 추가 PEM 형식 파일로 복사합니다.

프로세스

  1. 와일드카드 인증서에 서명하는 데 사용된 루트 CA 인증서만 포함하는 구성 맵을 생성합니다.

    $ oc create configmap custom-ca \
         --from-file=ca-bundle.crt=</path/to/example-ca.crt> \1
         -n openshift-config
    1
    </path/to/example-ca.crt>는 로컬 파일 시스템에서 루트 CA 인증서 파일의 경로입니다.
  2. 새로 생성된 구성 맵으로 클러스터 전체 프록시 구성을 업데이트합니다.

    $ oc patch proxy/cluster \
         --type=merge \
         --patch='{"spec":{"trustedCA":{"name":"custom-ca"}}}'
  3. 와일드카드 인증서 체인과 키를 포함하는 보안을 생성합니다.

    $ oc create secret tls <secret> \1
         --cert=</path/to/cert.crt> \2
         --key=</path/to/cert.key> \3
         -n openshift-ingress
    1
    <secret>은 인증서 체인과 개인 키를 포함할 보안의 이름입니다.
    2
    </path/to/cert.crt>는 로컬 파일 시스템의 인증서 체인 경로입니다.
    3
    </path/to/cert.key>는 이 인증서와 관련된 개인 키의 경로입니다.
  4. 새로 생성된 보안으로 Ingress Controller 구성을 업데이트합니다.

    $ oc patch ingresscontroller.operator default \
         --type=merge -p \
         '{"spec":{"defaultCertificate": {"name": "<secret>"}}}' \1
         -n openshift-ingress-operator
    1
    <secret>을 이전 단계에서 보안에 사용된 이름으로 교체합니다.