リスナーにおけるSSLパススルーのサポート
SSLパススルーは、着信SSL/TLSリクエストがロードバランサー(NetScaler)によって復号されないネットワーク構成です。代わりに、暗号化されたトラフィックは、復号のために指定されたバックエンドサーバー(アプリケーションポッド)に直接転送されます。
-
NetScalerはトラフィックを復号しませんが、リスナーに証明書をバインドすることは依然として必須です。
-
NetScalerは、リクエストを転送する前に、クライアントの最初のClient HelloメッセージでServer Name Indication (SNI) マッチングを実行します。これにより、ルーティングとセキュリティ検証の追加レイヤーが提供されます。
-
SSLパススルーは、リスナー内でアノテーションとして参照される場合、任意のリスナーでサポートされるようになりました。
-
このサポートには、マルチクラスターデプロイメントが含まれます。
-
あるクラスターのマルチクラスターリスナーでパススルー機能が有効になっている場合、マルチクラスターソリューションに参加している他のすべてのクラスターでも有効にする必要があります。
-
-
パススルーはリスナーレベルで設定されます。リスナーを参照するすべてのIngressでパススルーが有効になります。
リスナーCRDは、NetScaler上のフロントエンド仮想IP (VIP) の動作を制御します。以下のパラメーターをリスナースペックに含める必要があります。
| パラメーター | 値 | デフォルト | 説明 |
|---|---|---|---|
| パススルー | 真 | いいえ | このリスナーのVIPとポートに対してSSLパススルーを有効にします。 |
リスナーCRDの例
apiVersion: citrix.com/v1
kind: Listener
metadata:
name: listener-https-passthrough
namespace: default
spec:
multicluster: true # Required for this feature to be active
vip: '1.2.3.4'
port: 443
protocol: https
passthrough: true # Enables SSL Passthrough
certificates:
- secret:
name: app-secret # Mandatory certificate binding
イングレス YAML
SSLパススルーを有効にするためにIngress YAML定義に変更は必要ありません。パススルーの動作はリスナーCRDによって完全に制御されます。
以下は、設定されたリスナーを参照するIngress定義のサンプルです。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: https-ingress
annotations:
ingress.citrix.com/listener: listener-https-passthrough
spec:
ingressClassName: "cic-vpx"
rules:
- host: httpsapp-netscaler.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: https-app
port:
number: 80