7.4. ホステッドクラスターの OAuth サーバー証明書の設定


ホスト型クラスターにアクセスするために信頼済み証明書認証局 (CA) の証明書を使用する場合は、OAuth サーバー証明書を設定できます。

前提条件

  • 実行中のホステッドクラスターがある。
  • あなたは管理クラスターへの cluster-admin 権限を持っています。
  • HostedCluster リソースを変更するためのアクセス権がある。
  • ホステッドクラスター名前空間には、署名済み証明書と秘密鍵を含む TLS シークレットがあり、以下の鍵が含まれています。

    • tls.crt
    • tls.key

手順

  1. ホステッドクラスター名前空間を特定してください。

    1. 以下のコマンドを入力して、ホステッドクラスターが実行されている名前空間をエクスポートします。

      $ export HC_NAMESPACE=<hosted_cluster_namespace>
    2. 以下のコマンドを入力して、ホステッドクラスター名をエクスポートします。

      $ export CLUSTER_NAME=<hosted_cluster_name>
  2. 以下のコマンドを入力して、簡単なテスト証明書を生成します。

    $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
      -keyout tls.key \
      -out tls.crt \
      -subj "/CN=openshift-oauth" \
      -addext "subjectAltName=DNS:oauth-${HC_NAMESPACE}-${CLUSTER_NAME}.api-custom-cert-sample-hosted.sample-hosted.example.com"

    api-custom-cert-sample-hosted.sample-hosted.example.com という値は、コマンド内およびこの手順の残りの部分全体を通して例として使用されます。

    注記

    この例では、プレースホルダーのホスト名を使用しています。この手順の後半で OAuth ルートを特定したら、HostedCluster リソースを編集する前に、正しいホスト名を使用してこの証明書を再生成する必要があります。

  3. 以下のコマンドを入力して、ファイルが存在することを確認してください。

    $ ls tls.crt tls.key
  4. ホステッドクラスター名前空間に TLS シークレットをまだ作成していない場合は、次のコマンドを入力してシークレットを作成してください。

    $ oc create secret tls my-oauth-cert-secret \
      --cert=path/to/tls.crt \
      --key=path/to/tls.key \
      -n $HC_NAMESPACE

    出力例

    secret/my-oauth-cert-secret created

    注記

    OAuth サーバーは Hosted Control Plane 名前空間で動作しますが、証明書はホステッドクラスター名前空間に存在する必要があります。Hosted Control Plane 名前空間で作成されたシークレットは取得されません。

  5. 正しい OAuth ルートを見つけましょう:

    1. 管理クラスターの kubconfig ファイルを使用して、次のコマンドを入力します。

      $ oc get routes -n ${HC_NAMESPACE}-${CLUSTER_NAME}
    2. ルート名が oauth の場合は、以下のコマンドを入力して確認してください。

      $ oc get route oauth -n ${HC_NAMESPACE}-${CLUSTER_NAME} -o yaml
    3. 以下のコマンドを入力して、OAuth ルートホストを抽出する準備をします。

      OAUTH_HOST=$(oc get route oauth \
        -n ${HC_NAMESPACE}-${CLUSTER_NAME} \
        -o jsonpath='{.spec.host}')
    4. 以下のコマンドを入力して、OAuth ルートホストを抽出します。

      $ echo "${OAUTH_HOST}"

      出力例

      oauth-${HC_NAMESPACE}-${CLUSTER_NAME}.api-custom-cert-sample-hosted.sample-hosted.example.com

  6. HostedCluster リソースを編集します。

    1. 以下のコマンドを入力して、HostedCluster リソースを編集用に開きます。

      $ oc edit hostedcluster $CLUSTER_NAME -n $HC_NAMESPACE
    2. リソース内で、spec.configuration.apiServer セクションに servingCerts.namedCertificates スタンザを追加して、名前付き証明書を設定します。

      apiVersion: hypershift.openshift.io/v1beta1
      kind: HostedCluster
      metadata:
        name: <hosted_cluster_name>
        namespace: <hosted_cluster_namespace>
      spec:
        configuration:
          apiServer:
            audit:
              profile: Default
            servingCerts:
              namedCertificates:
              - names:
                - api-custom-cert-sample-hosted.sample-hosted.example.com
                servingCertificate:
                  name: my-oauth-cert-secret
      # ...

      ここでは、以下のようになります。

      spec.configuration.apiServer.servingCerts.namedCertificates.names
      OAuth ルートの実際のホスト名を指定します。
      spec.configuration.apiServer.servingCerts.servingCertificate.name
      TLS シークレットの名前を指定します。この秘密鍵はホステッドクラスター名前空間内に存在しなければなりません。
    3. 変更を保存して適用してください。Control Plane Operator は変更を調整し、設定は制御プレーンに伝播され、OAuth サーバーは新しい証明書の提供を開始します。

      重要

      ホステッドクラスターには、OAuth 証明書の設定フィールドは別途存在しません。

検証

  • ルートによって提供される証明書を確認するには、次のコマンドを入力してください。

    $ echo | openssl s_client \
      -connect "${OAUTH_HOST}:443" \
      -servername "${OAUTH_HOST}" \
      2>/dev/null \
      | openssl x509 -noout -subject -issuer -ext subjectAltName

    出力例

    subject=CN=openshift-oauth
    issuer=CN=openshift-oauth
    X509v3 Subject Alternative Name:
        DNS:oauth-${HC_NAMESPACE}-${CLUSTER_NAME}.api-custom-cert-sample-hosted.sample-hosted.example.com

    出力結果から、OAuth ルートがカスタム証明書を提供しており、その証明書は my-oauth-cert-secret というシークレットから取得されていることがわかります。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る