Kubernetes Ingress を使用した SSL パススルーの構成

最終公開日 : Oct 02, 2026
SSLパススルー機能を使用すると、ロードバランサーを使用して要求を復号化するのではなく、受信するセキュリティソケットレイヤー(SSL)要求を復号化のためにサーバーに直接渡すことができます。SSLパススルーはWebアプリケーションのセキュリティに広く使用されており、TCPモードを使用して暗号化されたデータをサーバーに渡します。
プロキシSSLパススルー構成では、ロードバランサーにSSL証明書をインストールする必要はありません。SSL接続はロードバランサーではなくバックエンドサーバーが処理するため、SSL証明書はバックエンドサーバーにインストールされます。
次の図は、SSLパススルー機能について説明しています。
SSLパススルー(/en-us/netscaler-k8s-ingress-controller/media/ssl-passthrough.png)
この図に示すように、SSLトラフィックはNetScalerで終端されず、SSLトラフィックはNetScalerを介してバックエンドサーバーに渡されます。バックエンドサーバーのSSL証明書は、SSLハンドシェイクに使用されます。
NetScaler Ingress Controllerは、Ingress NetScalerでSSLパススルーを有効にするために使用できる次のIngressアノテーションを提供します。
ingress.citrix.com/ssl-passthrough: 'True|False'
アノテーションのデフォルト値はFalseです。
SSLパススルーは、Ingress定義で提供されるすべてのサービスまたはホスト名に対して有効になります。SSLパススルーはホスト名(ワイルドカードホスト名もサポートされています)を使用し、Ingressで指定されたパスは無視します。
注:
NetScaler Ingress Controllerは、ホスト名ベースではないIngressのSSLパススルーをサポートしていません。また、SSLパススルーはデフォルトのバックエンドIngressには無効です。
Ingress NetScalerで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"
  name: hotdrinks-ingress
spec:
  ingressClassName: citrix
  rules:
  - host: hotdrinks.beverages.com
    http:
      paths:
      - backend:
          service:
            name: frontend-hotdrinks
            port:
              number: 443
        path: /
        pathType: Prefix
  tls:
  - secretName: beverages