第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 つ以上作成します。
このステップには、代替アプローチが複数あります。
- サイトのサブジェクト別名 (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 で認証局を作成し、シークレットの入力に使用できる単一の証明書を作成する方法を示しています。
caディレクトリーを作成し、認証局証明書を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 認証局が
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>"
$ 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 Copied! Toggle word wrap Toggle overflow
これで、
caディレクトリーにルート証明書があり、サイトで使用できるcertificateディレクトリーに別の証明書があるはずです。サイトのシークレット作成
certificateディレクトリーの親ディレクトリーに移動します。cd ..
$ cd ..Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 他のシークレットを入力し、
skupperで必要な形式に変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを使用してサイトを作成します。
skupper init
$ skupper initCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift では、
skupperはデフォルトでrouteingress を使用します。これはskupper init --ingress routeと同等です。サイトを確認するには、ステータスを確認します。
skupper status
$ skupper statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を使用して、OpenShift ルートが作成されたことを確認することもできます。
oc get routes
$ oc get routesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 最後に、次のコマンドを使用して、証明書が正しくないことで発生するエラーを確認します。
skupper debug events
$ skupper debug eventsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
改訂日時: 2023-04-06