6.8. Ingress 컨트롤러 구성
6.8.1. 사용자 정의 기본 인증서 설정
관리자는 Secret 리소스를 생성하고 IngressController
CR(사용자 정의 리소스)을 편집하여 사용자 정의 인증서를 사용하도록 Ingress 컨트롤러를 구성할 수 있습니다.
사전 요구 사항
- PEM 인코딩 파일에 인증서/키 쌍이 있어야 합니다. 이때 인증서는 신뢰할 수 있는 인증 기관 또는 사용자 정의 PKI에서 구성한 신뢰할 수 있는 개인 인증 기관의 서명을 받은 인증서입니다.
인증서가 다음 요구 사항을 충족합니다.
- 인증서가 Ingress 도메인에 유효해야 합니다.
-
인증서는
subjectAltName
확장자를 사용하여*.apps.ocp4.example.com과
같은 와일드카드 도메인을 지정합니다.
IngressController
CR이 있어야 합니다. 기본 설정을 사용할 수 있어야 합니다.$ oc --namespace openshift-ingress-operator get ingresscontrollers
출력 예
NAME AGE default 10m
임시 인증서가 있는 경우 사용자 정의 기본 인증서가 포함 된 보안의 tls.crt
파일에 인증서가 포함되어 있어야 합니다. 인증서를 지정하는 경우에는 순서가 중요합니다. 서버 인증서 다음에 임시 인증서를 나열해야 합니다.
프로세스
아래에서는 사용자 정의 인증서 및 키 쌍이 현재 작업 디렉터리의 tls.crt
및 tls.key
파일에 있다고 가정합니다. 그리고 tls.crt
및 tls.key
의 실제 경로 이름으로 변경합니다. Secret 리소스를 생성하고 IngressController CR에서 참조하는 경우 custom-certs-default
를 다른 이름으로 변경할 수도 있습니다.
이 작업을 수행하면 롤링 배포 전략에 따라 Ingress 컨트롤러가 재배포됩니다.
tls.crt
및tls.key
파일을 사용하여openshift-ingress
네임스페이스에 사용자 정의 인증서를 포함하는 Secret 리소스를 만듭니다.$ oc --namespace openshift-ingress create secret tls custom-certs-default --cert=tls.crt --key=tls.key
새 인증서 보안 키를 참조하도록 IngressController CR을 업데이트합니다.
$ oc patch --type=merge --namespace openshift-ingress-operator ingresscontrollers/default \ --patch '{"spec":{"defaultCertificate":{"name":"custom-certs-default"}}}'
업데이트가 적용되었는지 확인합니다.
$ echo Q |\ openssl s_client -connect console-openshift-console.apps.<domain>:443 -showcerts 2>/dev/null |\ openssl x509 -noout -subject -issuer -enddate
다음과 같습니다.
<domain>
- 클러스터의 기본 도메인 이름을 지정합니다.
출력 예
subject=C = US, ST = NC, L = Raleigh, O = RH, OU = OCP4, CN = *.apps.example.com issuer=C = US, ST = NC, L = Raleigh, O = RH, OU = OCP4, CN = example.com notAfter=May 10 08:32:45 2022 GM
인증서 보안 이름은 CR을 업데이트하는 데 사용된 값과 일치해야 합니다.
IngressController CR이 수정되면 Ingress Operator는 사용자 정의 인증서를 사용하도록 Ingress 컨트롤러의 배포를 업데이트합니다.