9.9. cert-manager Operator for Red Hat OpenShift를 사용하여 경로 보안


OpenShift Container Platform에서 경로 API는 시크릿을 통해 TLS 인증서를 참조하는 구성 가능한 옵션을 제공하도록 확장됩니다. 외부 관리 인증서를 활성화하면 수동 개입으로 인한 오류를 최소화하고, 인증서 관리 프로세스를 간소화하며, OpenShift Container Platform 라우터가 참조된 인증서를 신속하게 제공하도록 할 수 있습니다.

9.9.1. 클러스터의 경로를 보호하도록 인증서 구성

다음 단계에서는 Let's Encrypt ACME HTTP-01 챌린지 유형과 함께 cert-manager Operator for Red Hat OpenShift를 사용하여 OpenShift Container Platform 클러스터의 경로 리소스를 보호하는 프로세스를 보여줍니다.

사전 요구 사항

  • Red Hat OpenShift용 cert-manager Operator 버전 1.14.0 이상을 설치했습니다.
  • routes/custom-host 하위 리소스에 대한 생성 권한이 있는데, 이 권한은 경로를 생성하고 업데이트하는 데 사용됩니다.
  • 노출하려는 서비스 리소스가 있습니다.

프로세스

  1. 다음 명령을 실행하여 HTTP-01 솔러를 구성할 Issuer 를 만듭니다. 다른 ACME 발행자 유형의 경우 "ACME an issuer 구성"을 참조하십시오.

    Issuer.yaml 파일 예

    $ oc create -f - << EOF
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: letsencrypt-acme
      namespace: <namespace> 
    1
    
    spec:
      acme:
        server: https://acme-v02.api.letsencrypt.org/directory
        privateKeySecretRef:
          name: letsencrypt-acme-account-key
        solvers:
          - http01:
              ingress:
                ingressClassName: openshift-default
    EOF
    Copy to Clipboard Toggle word wrap

    1
    Issuer가 있는 네임스페이스를 지정합니다. 경로의 네임스페이스와 동일해야 합니다.
  2. 다음 명령을 실행하여 경로에 대한 인증서 오브젝트를 생성합니다. secretName 은 cert-manager에서 발행하고 관리할 TLS 시크릿을 지정하고 다음 단계에서 경로에서도 참조합니다.

    $ oc create -f - << EOF
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: example-route-cert
      namespace: <namespace> 
    1
    
    spec:
      commonName: <hostname> 
    2
    
      dnsNames:
        - <hostname> 
    3
    
      usages:
        - server auth
      issuerRef:
        kind: Issuer
        name: letsencrypt-acme
      secretName: <secret_name> 
    4
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    인증서 리소스가 있는 네임스페이스 를 지정합니다. 경로의 네임스페이스와 동일해야 합니다.
    2
    경로의 호스트 이름을 사용하여 인증서의 일반 이름을 지정합니다.
    3
    경로의 호스트 이름을 인증서의 DNS 이름에 추가합니다.
    4
    인증서가 포함된 보안의 이름을 지정합니다.
  3. 다음 명령을 사용하여 참조된 시크릿을 읽을 수 있는 라우터 서비스 계정 권한을 제공하는 역할을 생성합니다.

    $ oc create role secret-reader \
      --verb=get,list,watch \
      --resource=secrets \
      --resource-name=<secret_name> \ 
    1
    
      --namespace=<namespace> 
    2
    Copy to Clipboard Toggle word wrap
    1
    액세스 권한을 부여할 시크릿 이름을 지정합니다. 인증서 리소스에 지정된 secretName 과 일치해야 합니다.
    2
    시크릿과 경로가 모두 있는 네임스페이스를 지정합니다.
  4. 다음 명령을 사용하여 새로 생성된 Role 리소스와 라우터 서비스 계정을 바인딩할 RoleBinding 리소스를 생성합니다.

    $ oc create rolebinding secret-reader-binding \
      --role=secret-reader \
      --serviceaccount=openshift-ingress:router \
      --namespace=<namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    시크릿과 경로가 모두 있는 네임스페이스를 지정합니다.
  5. 다음 명령을 실행하여 에지 TLS 종료와 사용자 지정 호스트 이름을 사용하는 서비스 리소스에 대한 경로를 만듭니다. 호스트 이름은 다음 단계에서 인증서 리소스를 생성할 때 사용됩니다.

    $ oc create route edge <route_name> \ 
    1
    
      --service=<service_name> \ 
    2
    
      --hostname=<hostname> \ 
    3
    
      --namespace=<namespace> 
    4
    Copy to Clipboard Toggle word wrap
    1
    경로 이름을 지정합니다.
    2
    노출하려는 서비스를 지정합니다.
    3
    경로의 호스트 이름을 지정합니다.
    4
    경로가 있는 네임스페이스를 지정합니다.
  6. 경로의 .spec.tls.externalCertificate 필드를 업데이트하여 이전에 생성된 보안을 참조하고 다음 명령을 사용하여 cert-manager에서 발급한 인증서를 사용합니다.

    $ oc patch route <route_name> \ 
    1
    
      -n <namespace> \ 
    2
    
      --type=merge \
      -p '{"spec":{"tls":{"externalCertificate":{"name":"<secret_name>"}}}}' 
    3
    Copy to Clipboard Toggle word wrap
    1
    경로 이름을 지정합니다.
    2
    시크릿과 경로가 모두 있는 네임스페이스를 지정합니다.
    3
    인증서가 포함된 보안의 이름을 지정합니다.

검증

  • 다음 명령을 실행하여 인증서가 생성되어 사용할 준비가 되었는지 확인하세요.

    $ oc get certificate -n <namespace> 
    1
    
    $ oc get secret -n <namespace> 
    2
    Copy to Clipboard Toggle word wrap
    1 2
    시크릿과 경로가 모두 있는 네임스페이스를 지정합니다.
  • 다음 명령을 실행하여 라우터에서 참조된 외부 인증서를 사용하고 있는지 확인합니다. 명령은 상태 코드 200 OK 와 함께 반환되어야 합니다.

    $ curl -IsS https://<hostname> 
    1
    Copy to Clipboard Toggle word wrap
    1
    경로의 호스트 이름을 지정합니다.
  • 다음 명령을 실행하여 서버 인증서의 subject, subjectAltName, issuer 가 모두 curl verbose 출력에서 예상대로 표시되는지 확인합니다.

    $ curl -v https://<hostname> 
    1
    Copy to Clipboard Toggle word wrap
    1
    경로의 호스트 이름을 지정합니다.

    이제 경로는 cert-manager가 발행한 참조 시크릿의 인증서로 성공적으로 보호됩니다. cert-manager는 인증서의 라이프 사이클을 자동으로 관리합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat