2.13.5. 外部認証局の鍵と証明書の追加


デフォルトでは、Red Hat OpenShift Service Mesh は自己署名ルート証明書および鍵を生成し、それらを使用してワークロードの証明書に署名します。ユーザー定義の証明書および鍵を使用して、ユーザー定義のルート証明書でワークロードの証明書に署名することもできます。この手順では、証明書と鍵を Service Mesh に接続する例を示します。

前提条件

  • 証明書を設定するために、相互 TLS を有効にした Red Hat OpenShift Service Mesh をインストールする。
  • この例では、Maistra リポジトリー からの証明書を使用します。実稼働環境の場合は、認証局から独自の証明書を使用します。
  • Bookinfo サンプルアプリケーションをデプロイして以下の手順で結果を確認しておく。
  • OpenSSL は、証明書を検証するために必要です。

2.13.5.1. 既存の証明書と鍵の追加

既存の署名 (CA) 証明書および鍵を使用するには、CA 証明書、鍵、ルート証明書を含む信頼ファイルのチェーンを作成する必要があります。対応する証明書ごとに、以下のファイル名をそのまま使用する必要があります。CA 証明書の名前は ca-cert.pem、鍵の名前は ca-key.pemca-cert.pem に署名するルート証明書の名前は root-cert.pem です。ワークロードで中間証明書を使用する場合は、cert-chain.pem ファイルでそれらを指定する必要があります。

  1. Maistra リポジトリー のサンプル証明書をローカルに保存し、<path> を証明書へのパスに置き換えます。
  2. cacert という名前のシークレットを作成します。これには、入力ファイルの ca-cert.pemca-key.pemroot-cert.pem および cert-chain.pem が含まれます。

    $ oc create secret generic cacerts -n istio-system --from-file=<path>/ca-cert.pem \
        --from-file=<path>/ca-key.pem --from-file=<path>/root-cert.pem \
        --from-file=<path>/cert-chain.pem
  3. ServiceMeshControlPlane リソースで、spec.security.dataPlane.mtls truetrue に設定し、以下の例のように certificateAuthority フィールドを設定します。デフォルトの rootCADir/etc/cacerts です。キーおよび証明書がデフォルトの場所にマウントされている場合は、privateKey を設定する必要はありません。Service Mesh は、secret-mount ファイルから証明書およびキーを読み取ります。

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    spec:
      security:
        dataPlane:
          mtls: true
        certificateAuthority:
          type: Istiod
          istiod:
            type: PrivateKey
            privateKey:
              rootCADir: /etc/cacerts
  4. cacert シークレットを作成/変更/削除した後に、変更を有効にするために、Service Mesh コントロールプレーンの istiodgateway Pod を再起動する必要があります。以下のコマンドで Pod を再起動します。

    $ oc -n istio-system delete pods -l 'app in (istiod,istio-ingressgateway, istio-egressgateway)'

    Operator は、Pod を削除した後、自動的に再作成します。

  5. bookinfo アプリケーションの Pod を再起動し、sidecar プロキシーがシークレットの変更を取り込むようにします。以下のコマンドで Pod を再起動します。

    $ oc -n bookinfo delete pods --all

    以下のような出力が表示されるはずです。

    pod "details-v1-6cd699df8c-j54nh" deleted
    pod "productpage-v1-5ddcb4b84f-mtmf2" deleted
    pod "ratings-v1-bdbcc68bc-kmng4" deleted
    pod "reviews-v1-754ddd7b6f-lqhsv" deleted
    pod "reviews-v2-675679877f-q67r2" deleted
    pod "reviews-v3-79d7549c7-c2gjs" deleted
  6. 以下のコマンドで、Pod が作成され、準備ができたことを確認します。

    $ oc get pods -n bookinfo
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る