第2章 OpenShift でカスタム認証局を使用してサイトを作成する


デフォルトでは、Application Interconnect は相互 TLS を使用してサイト間のリンクを確立するための証明書を作成します。これらの証明書は、skupper init を使用してサイトを作成するときに、シークレットとしてnamespace に保存されます。独自の証明書を使用する場合は、このセクションで説明するように、サイトを作成する前に一連のシークレットに適切な証明書を入力できます。このシークレットのセットは、Application Interconnect にサイトの作成に必要な設定を提供します。

次の証明書が必要です。

skupper-claims-server
クレームタイプトークンを使用してサイトをリンクするために使用されます。
skupper-console-certs
Skupper コンソールで使用されます。
skupper-local-client および skupper-local-server
Skupper ルーターによって使用されます。
skupper-site-server
すべてのルーター間接続とヘッドレスサービスに使用されます。
skupper-service-client
TLS を介して公開されるサービスに使用されます。

前提条件

  • OpenShift クラスターにアクセスでき、skupper init を実行するために十分な権限が指定されている。
  • 認証局を使用して証明書を作成するためのアクセス。

手順

  1. サイトの証明書を 1 つ以上作成します。

    このステップには、代替アプローチが複数あります。

    • サイトのサブジェクト別名 (SAN) のセットを使用して、既存の証明書を再発行します。
    • サイトの一連の SAN を使用して新しい証明書を作成します。
    • サイトに関連するアイテムごとに新しい証明書を作成します。

    次のシークレットごとに証明書が必要です。

    • skupper.<namespace>
    • skupper-router.<namespace>
    • skupper-router-local
    • skupper-router-local.<namespace>.svc.cluster.local
    • claims-<namespace>.<clustername>.<domain>
    • skupper-<namespace>.<clustername>.<domain>
    • skupper-edge-<namespace>.<clustername>.<domain>
    • skupper-inter-router-<namespace>.<clustername>.<domain>

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

    • <namespace> は、サイトを作成する namespace の名前です。
    • <clustername> はクラスターの名前です。
    • <domain> はクラスターのドメイン名です。

    特定の認証局テクノロジーを使用することは、このガイドの範囲を超えています。ただし、次のコマンドは、Linux で認証局を作成し、シークレットの入力に使用できる単一の証明書を作成する方法を示しています。

    1. ca ディレクトリーを作成し、認証局証明書を作成します。

      $ mkdir ca
      
      $ cd ca
      
      $ ssh-keygen -t rsa -m PEM -f tls.key -q -N ""
      $ openssl req -x509 -nodes -days 365 -key tls.key -out tls.crt
      Copy to Clipboard Toggle word wrap
    2. 認証局が tls.crt および tls.key ファイルを作成した場合は、次のようにサイトの証明書を作成できます。

      $ cd ..
      $ mkdir certificate
      $ cd certificate
      
      $ openssl req -nodes -newkey rsa:4096 -x509 -CA ../ca/tls.crt -CAkey ../ca/tls.key -out tls.crt -keyout tls.key -addext "subjectAltName = DNS:skupper.<namespace>, DNS:skupper-router.<namespace>, DNS:skupper-router-local, DNS:skupper-router-local.<namespace>.svc.cluster.local,DNS:claims-<namespace>.<clustername>.<domain>, DNS:skupper-<namespace>.<clustername>.<domain>, DNS:skupper-edge-<namespace>.<clustername>.<domain>, DNS:skupper-inter-router-<namespace>.<clustername>.<domain>"
      Copy to Clipboard Toggle word wrap

    これで、ca ディレクトリーにルート証明書があり、サイトで使用できる certificate ディレクトリーに別の証明書があるはずです。

  2. サイトのシークレット作成

    1. certificate ディレクトリーの親ディレクトリーに移動します。

      $ cd ..
      Copy to Clipboard Toggle word wrap
    2. ca ディレクトリーの証明書を使用して、ca 関連のシークレットを入力します。

      $ kubectl create secret tls skupper-site-ca --cert=ca/tls.crt --key=ca/tls.key
      
      $ kubectl create secret tls skupper-service-ca --cert=ca/tls.crt --key=ca/tls.key
      
      $ kubectl create secret tls skupper-local-ca --cert=ca/tls.crt --key=ca/tls.key
      Copy to Clipboard Toggle word wrap
    3. 他のシークレットを入力し、skupper で必要な形式に変更します。

      $ kubectl create secret tls skupper-claims-server --cert=certificate/tls.crt --key=certificate/tls.key
      
      $ kubectl patch secret skupper-claims-server  -p="{\"data\":{\"ca.crt\": \"$($ kubectl get secret skupper-site-ca -o json -o=jsonpath="{.data.tls\.crt}")\"}}"
      
      
      $ kubectl create secret tls skupper-console-certs --cert=certificate/tls.crt --key=certificate/tls.key
      
      $ kubectl patch secret skupper-console-certs  -p="{\"data\":{\"ca.crt\": \"$($ kubectl get secret skupper-local-ca -o json -o=jsonpath="{.data.tls\.crt}")\"}}"
      
      
      $ kubectl create secret tls skupper-local-client --cert=certificate/tls.crt --key=certificate/tls.key
      
      $ kubectl patch secret skupper-local-client  -p="{\"data\":{\"ca.crt\": \"$($ kubectl get secret skupper-local-ca -o json -o=jsonpath="{.data.tls\.crt}")\"}}"
      
      
      $ kubectl create secret tls skupper-local-server --cert=certificate/tls.crt --key=certificate/tls.key
      
      $ kubectl patch secret skupper-local-server  -p="{\"data\":{\"ca.crt\": \"$($ kubectl get secret skupper-local-ca -o json -o=jsonpath="{.data.tls\.crt}")\"}}"
      
      
      $ kubectl create secret tls skupper-site-server --cert=certificate/tls.crt --key=certificate/tls.key
      
      $ kubectl patch secret skupper-site-server  -p="{\"data\":{\"ca.crt\": \"$($ kubectl get secret skupper-site-ca -o json -o=jsonpath="{.data.tls\.crt}")\"}}"
      
      
      $ kubectl create secret tls skupper-service-client --cert=certificate/tls.crt --key=certificate/tls.key
      
      $ kubectl patch secret skupper-service-client  -p="{\"data\":{\"ca.crt\": \"$($ kubectl get secret skupper-service-ca -o json -o=jsonpath="{.data.tls\.crt}")\"}}"
      Copy to Clipboard Toggle word wrap
  3. 次のコマンドを使用してサイトを作成します。

    $ skupper init
    Copy to Clipboard Toggle word wrap

    OpenShift では、skupper はデフォルトで route ingress を使用します。これは skupper init --ingress route と同等です。

    サイトを確認するには、ステータスを確認します。

    $ skupper status
    Copy to Clipboard Toggle word wrap

    以下を使用して、OpenShift ルートが作成されたことを確認することもできます。

    $ oc get routes
    Copy to Clipboard Toggle word wrap

    最後に、次のコマンドを使用して、証明書が正しくないことで発生するエラーを確認します。

    $ skupper debug events
    Copy to Clipboard Toggle word wrap

改訂日時: 2023-04-06

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat