3.7.3. 信頼できない TLS 証明書の OpenShift Dev Space へのインポート
デフォルトでは、OpenShift Dev Spaces コンポーネント間の外部通信は TLS で暗号化されます。プロキシー、ソースコードリポジトリー、ID プロバイダーなどの外部サービスとの OpenShift Dev Spaces コンポーネントの通信にも、TLS が必要になる場合があります。TLS で暗号化されたすべての通信では、信頼できる認証局 (CA) によって署名された TLS 証明書を使用する必要があります。
OpenShift Dev Spaces コンポーネントまたは外部サービスが使用する証明書が信頼できない CA によって署名されている場合、CA 証明書を OpenShift Dev Spaces インスタンスにインポートして、すべての OpenShift Dev Spaces コンポーネントが証明書を信頼された CA によって署名されたものとして扱うようにする必要があります。次の場合にこれを行う必要があります。
- 基盤となる OpenShift クラスターが、信頼されていない CA によって署名された TLS 証明書を使用ている場合。OpenShift Dev Spaces サーバーまたはワークスペースのコンポーネントが、信頼できない CA によって署名された TLS 証明書を使用する外部 OIDC プロバイダーまたは Git サーバーに接続している場合。
OpenShift Dev Spaces は、TLS 証明書のソースとしてプロジェクト内のラベル付き ConfigMap を使用します。ConfigMap には、それぞれ証明書数の乱数を持つ任意の数のキーを指定できます。
OpenShift クラスターにクラスター全体の信頼できる CA 証明書が クラスター全体のプロキシー設定 を通じて追加されている場合、OpenShift DevSpaces Operator はそれらを検出し、この ConfigMap に自動的に挿入します。OpenShift Dev Spaces は、ConfigMap に config.openshift.io/inject-trusted-cabundle="true"
ラベルを自動的にラベル付けします。このアノテーションに基づいて、OpenShift は ConfigMap の ca-bundle.crt
キー内にクラスター全体で信頼される CA 証明書を自動的に挿入します。
一部の OpenShift Dev Spaces コンポーネントでは、エンドポイントを信頼するために完全な証明書チェーンが必要です。クラスターが中間証明書で設定されている場合は、自己署名ルートを含むチェーン全体を OpenShift Dev Spaces に追加します。
3.7.3.1. OpenShift Dev Spaces への新しい CA 証明書の追加
次の手順は、すでにインストールおよび実行されているインスタンスと、インストールされるインスタンスに適用されます。
前提条件
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。Getting started with the CLI を参照してください。 - OpenShift Dev Space の namespace が存在します。
手順
インポートする必要のある証明書をローカルファイルシステムに保存します。
注意導入句が
BEGIN TRUSTED CERTIFICATE
の証明書は、Java でサポートされていない PEMTRUSTED CERTIFICATE
形式である可能性があります。次のコマンドを使用して、サポートされているCERTIFICATE
形式に変換します。-
openssl x509 -in cert.pem -out cert.cer
-
必要な TLS 証明書で新規 ConfigMap を作成します。
$ oc create configmap custom-certs --from-file=<bundle-file-path> -n=openshift-devspaces
複数のバンドルを適用するには、別の
-from-file=<bundle-file-path>
を追加します。または、別の ConfigMap を作成します。app.kubernetes.io/part-of=che.eclipse.org
とapp.kubernetes.io/component=ca-bundle
のラベルを使用して作成した ConfigMap にラベルを付けます。$ oc label configmap custom-certs app.kubernetes.io/part-of=che.eclipse.org app.kubernetes.io/component=ca-bundle -n <devspaces-namespace-name>
- 以前にデプロイされていない場合は、OpenShift Dev Spaces をデプロイします。それ以外の場合は、OpenShift Dev Spaces コンポーネントのロールアウトが完了するまで待ちます。
- 変更を有効にするには、実行中のワークスペースを再起動します。