3.2. カスタム認証局の設定


カスタム証明局 (CA) を使用して外部で生成された証明書とドメイン名を設定するには、それらを MicroShift の /etc/microshift/config.yaml 設定ファイルに追加します。ホストオペレーティングシステムの信頼ルートも設定する必要があります。

注記

外部で生成された kubeconfig ファイルは /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig ディレクトリーに作成されます。外部で生成された設定に加えて localhost を使用する必要がある場合は、元の kubeconfig ファイルをデフォルトの場所に保持します。localhost kubeconfig ファイルは、自己署名認証局を使用します。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • クラスター管理者のロールを持つユーザーとしてクラスターにアクセスできる。
  • 認証局がカスタム証明書を発行している。
  • MicroShift の /etc/microshift/config.yaml 設定ファイルが存在する。

手順

  1. 追加するカスタム証明書を MicroShift ホストの信頼ルートにコピーします。証明書と秘密鍵に MicroShift のみがアクセス可能であることを確認します。
  2. 必要なカスタム CA ごとに、次の例を使用して、namedCertificates という apiServer セクションを /etc/microshift/config.yaml MicroShift 設定ファイルに追加します。

    apiServer:
      namedCertificates:
       - certPath: ~/certs/api_fqdn_1.crt 1
         keyPath:  ~/certs/api_fqdn_1.key 2
       - certPath: ~/certs/api_fqdn_2.crt
         keyPath:  ~/certs/api_fqdn_2.key
         names: 3
         - api_fqdn_1
         - *.apps.external.com
    1
    証明書の完全パスを追加します。
    2
    証明書キーへの完全パスを追加します。
    3
    任意。明示的な DNS 名のリストを追加します。ワイルドカードは、先頭に指定できます。名前が指定されていない場合は、暗黙名が証明書から抽出されます。
  3. 次のコマンドを実行して、{microshift-service} を再起動し、証明書を適用します。

    $ systemctl microshift restart
  4. システムが再起動してカスタムサーバーが適用されるまで数分間待ちます。新しい kubeconfig ファイルは /var/lib/microshift/resources/kubeadmin/ ディレクトリーに生成されます。
  5. kubeconfig ファイルをクライアントにコピーします。IP アドレスにワイルドカードを指定した場合は、kubeconfig を更新してサーバーのパブリック IP アドレスを削除し、その IP アドレスを使用する特定のワイルドカード範囲に置き換えます。
  6. クライアントからは、次の手順を実行します。

    1. 次のコマンドを実行して、使用する kubeconfig を指定します。

      $ export KUBECONFIG=~/custom-kubeconfigs/kubeconfig 1
      1
      コピーした kubeconfig ファイルの場所をパスとして使用します。
    2. 次のコマンドを使用して、証明書が適用されていることを確認します。

      $ oc --certificate-authority ~/certs/ca.ca get node

      出力例

      oc get node
      NAME                             STATUS   ROLES                         AGE   VERSION
      dhcp-1-235-195.arm.example.com   Ready    control-plane,master,worker   76m   v1.29.2

    3. 次のコマンドを実行して、新しい CA ファイルを $KUBECONFIG 環境変数に追加します。

      $ oc config set clusters.microshift.certificate-authority /tmp/certificate-authority-data-new.crt
    4. 次のコマンドを実行して、新しい kubeconfig ファイルに新しい CA が含まれていることを確認します。

      $ oc config view --flatten

      外部で生成された kubeconfig ファイルの例

      apiVersion: v1
      clusters:
      - cluster:
          certificate-authority: /tmp/certificate-authority-data-new.crt 1
          server: https://api.ci-ln-k0gim2b-76ef8.aws-2.ci.openshift.org:6443
        name: ci-ln-k0gim2b-76ef8
      contexts:
      - context:
          cluster: ci-ln-k0gim2b-76ef8
          user:
        name:
      current-context:
      kind: Config
      preferences: {}

      1
      外部で生成された kubeconfig ファイルには、certificate-authority-data セクションが存在しません。これは、以前使用した oc config set コマンドで追加されます。
    5. 次のコマンドを実行して、カスタマイズされた API サーバー認証局の subjectissuer を確認します。

      $ curl --cacert /tmp/caCert.pem https://${fqdn_name}:6443/healthz -v

      出力例

      Server certificate:
        subject: CN=kas-test-cert_server
        start date: Mar 12 11:39:46 2024 GMT
        expire date: Mar 12 11:39:46 2025 GMT
        subjectAltName: host "dhcp-1-235-3.arm.eng.rdu2.redhat.com" matched cert's "dhcp-1-235-3.arm.eng.rdu2.redhat.com"
        issuer: CN=kas-test-cert_ca
        SSL certificate verify ok.

      重要

      生成された kubeconfig ファイル内の certificate-authority-data を新しい rootCA に置き換えるか、certificate-authority-data をオペレーティングシステムの信頼ルートに追加します。両方の方法を使用しないでください。

    6. オペレーティングシステムの信頼ルートで追加の CA を設定します。たとえば、クライアントシステム上の RHEL クライアントトラストストア内などです。詳細は、システム全体のトラストストア を参照してください。

      • CA を含む設定で証明書バンドルを更新することを推奨します。
      • 証明書バンドルを設定しない場合は、代わりに oc login localhost:8443 --certificate-authority=/path/to/cert.crt コマンドを使用することもできますが、この方法は推奨されません。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.