1.4.4. Ingress アノテーションでの宛先 CA 証明書を使用したルート作成
カスタム宛先 CA 証明書を使用してルートを定義するには、Ingress オブジェクトに route.openshift.io/destination-ca-certificate-secret アノテーションを適用します。この設定により、イングレスコントローラーは指定されたシークレットを使用して、宛先サービスのアイデンティティーを検証することが保証されます。
前提条件
- 証明書と秘密鍵のペアが PEM エンコードされたファイルに格納されており、その証明書はルートホストに対して有効です。
- 証明書チェーンを完成させるための、PEM エンコードされたファイル形式の別の CA 証明書があります。
- 宛先 CA 証明書は、PEM エンコードされたファイルで別途用意されています。
- 公開したいサービスがあります。
手順
次のコマンドを入力して、宛先 CA 証明書のシークレットを作成します。
$ oc create secret generic dest-ca-cert --from-file=tls.crt=<file_path>以下に例を示します。
$ oc -n test-ns create secret generic dest-ca-cert --from-file=tls.crt=tls.crt出力例
secret/dest-ca-cert createdroute.openshift.io/destination-ca-certificate-secretを Ingress アノテーションに追加します。apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: frontend annotations: route.openshift.io/termination: "reencrypt" route.openshift.io/destination-ca-certificate-secret: secret-ca-cert ...ここでは、以下のようになります。
宛先 CA 証明書シークレットroute.openshift.io/destination-ca-certificate-secretアノテーションを指定します。このアノテーションは Kubernetes のシークレットを参照しています。Ingress コントローラーは、アノテーションで参照されているシークレットを生成されたルートに挿入します。
出力例
apiVersion: route.openshift.io/v1 kind: Route metadata: name: frontend annotations: route.openshift.io/termination: reencrypt route.openshift.io/destination-ca-certificate-secret: secret-ca-cert spec: ... tls: insecureEdgeTerminationPolicy: Redirect termination: reencrypt destinationCACertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- ...