Citrix ADC ingress controller

Kubernetes Ingress を使用した SSL パススルーの設定

SSL パススルー機能を使用すると、受信したセキュリティソケットレイヤー (SSL) 要求をロードバランサーを使用して復号化するのではなく、サーバーに直接渡して復号化できます。SSL パススルーは Web アプリケーションのセキュリティに広く使用されており、TCP モードを使用して暗号化されたデータをサーバーに渡します。

プロキシ SSL パススルー設定では、ロードバランサーに SSL 証明書をインストールする必要はありません。SSL 証明書は、ロードバランサーではなく SSL 接続を処理するため、バックエンドサーバーにインストールされます。

次の図は、SSL パススルー機能について説明しています。

SSL パススルー

この図に示すように、SSLトラフィックはCitrix ADCで終了せず、SSLトラフィックはCitrix ADCを介してバックエンドサーバーに渡されます。SSL ハンドシェイクには、バックエンドサーバーの SSL 証明書が使用されます。

Citrix ingress controller には、Ingress Citrix ADC でSSLパススルーを有効にするために使用できる次のIngressアノテーションが用意されています。

ingress.citrix.com/ssl-passthrough: 'True|False'

アノテーションのデフォルト値はFalseです。

Ingress 定義で指定されているすべてのサービスまたはホスト名に対して SSL パススルーが有効になります。SSL パススルーはホスト名を使用し (ワイルドカードのホスト名もサポートされています)、Ingress で指定されたパスは無視します。

注:

Citrix ingress controller は、非ホスト名ベースの Ingress に対するSSLパススルーをサポートしていません。また、SSL パススルーはデフォルトのバックエンド Ingress では無効です。

Ingress Citrix ADCでSSLパススルーを構成するには、 次のIngress定義の例に示すようにingress.citrix.com/ssl-passthrough:を定義する必要があります。また、例に示すように、ホストの TLS を有効にする必要があります。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    ingress.citrix.com/frontend-ip: x.x.x.x
    ingress.citrix.com/insecure-termination: redirect
    ingress.citrix.com/secure-backend: "True"
    ingress.citrix.com/ssl-passthrough: "True"
    kubernetes.io/ingress.class: citrix
  name: hotdrinks-ingress
spec:
  rules:
  - host: hotdrinks.beverages.com
    http:
      paths:
      - backend:
          service:
            name: frontend-hotdrinks
            port:
              number: 443
        path: /
        pathType: Prefix
  tls:
  - secretName: beverages
<!--NeedCopy-->
Kubernetes Ingress を使用した SSL パススルーの設定

この記事の概要