3.2. API サーバー証明書の追加


クラスター外のクライアントが API サーバーの証明書を検証できるようにするには、デフォルトの API サーバー証明書を、クライアントが信頼する認証局 (CA) が発行した証明書に置き換えることができます。

デフォルトでは、API サーバー証明書は OpenShift Container Platform クラスターの内部 CA によって発行されます。その結果、クラスター外のクライアントは API サーバーの証明書を検証できなくなります。

注記

Hosted Control Plane クラスターでは、Kubernetes API サーバーに必要な数のカスタム証明書を追加できます。ただし、ワーカーノードがコントロールプレーンとの通信に使用するエンドポイントの証明書は追加しないでください。詳細は、ホステッドクラスターでカスタム API サーバー証明書を設定する を参照してください。

3.2.1. 証明書という名前の API サーバーを初めて追加します

デフォルトの API サーバー証明書は、OpenShift Container Platform クラスター内部の認証局 (CA) によって発行されます。リバースプロキシーやロードバランサーを使用する場合など、クライアントから要求された完全修飾ドメイン名 (FQDN) に基づいて、API サーバーが返す代替証明書を追加できます。

注記

証明書という名前のカスタム API サーバーを初めて追加すると 、kube-apiserver-operator が API サーバー Pod の新しいリビジョンをロールアウトするようになります。ノードの再起動は不要です。

前提条件

  • FQDN とそれに対応するプライベートキーの証明書が必要です。それぞれが個別の PEM 形式のファイルである必要があります。
  • プライベートキーの暗号化は解除されている必要があります。
  • 証明書には、FQDN を示す subjectAltName 拡張が含まれる必要があります。
  • 証明書ファイルでは、チェーンに 1 つ以上の証明書を含めることができます。API サーバーの FQDN に対応する証明書は、ファイル内の最初の証明書である必要があり、その後に中間証明書が続き、最後にルート CA 証明書が続きます。
警告

内部ロードバランサーに名前付きの証明書を指定しないようにしてください (ホスト名 api-int.<cluster_name>.<base_domain>)。これを指定すると、クラスターの状態は動作の低下した状態になります。

手順

  1. kubeadmin ユーザーとして CLI にログインしてください。

    $ oc login -u kubeadmin -p <password> https://<fqdn>:6443

    各項目の説明:

    <password>
    クラスター管理者パスワードを指定します。
    <fqdn>
    内部クラスター API エンドポイントの完全修飾ドメイン名を指定します。
  2. openshift-config 名前空間に、証明書チェーンと秘密鍵を含むシークレットを作成します。

    $ oc create secret tls <secret_name> \
         --cert=<path_to_certificate_file> \
         --key=<path_to_private_key_file> \
         -n openshift-config

    各項目の説明:

    <secret_name>
    暗号鍵ペアを格納する新しい秘密リソースの名前を指定します。
    < 証明書ファイルへのパス >
    カスタム証明書チェーンファイルへの絶対ローカルパスを指定します。
    < 秘密鍵ファイルへのパス >
    証明書に関連付けられた暗号化されていない秘密鍵ファイルへの絶対ローカルパスを指定します。
  3. API サーバーを更新して、作成したシークレットリソースを参照するようにします。

    $ oc patch apiserver cluster --type=merge -p '
    {
      "spec": {
        "servingCerts": {
          "namedCertificates": [
            {
              "names": ["<fqdn>"],
              "servingCertificate": {
                "name": "<secret_name>"
              }
            }
          ]
        }
      }
    }'

    各項目の説明:

    <fqdn>
    API サーバーがこのカスタム証明書を提供する、完全修飾ドメイン名を指定します。ポート番号は含めないでください。
    <secret_name>
    前の手順で作成したシークレットの名前を指定します。
  4. オペレーターの状態を確認して、Kubernetes API サーバーの新しいリビジョンが展開されたことを確認します。

    $ oc get clusteroperators kube-apiserver
    注記

    API サーバーオペレーターがカスタム証明書で設定された新しい Pod リビジョンをデプロイしている間、PROGRESSING ステータス列は True に変わります。展開作業中は、プロセスを中断したり、追加の設定更新を適用したりしないでください。ステータスが False に戻り、AVAILABLE がTrue と 表示されるまで続行しないでください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る