NetScalerにおけるTLSクライアント認証のサポート

最終公開日 : Oct 02, 2026
TLSクライアント認証では、サーバーは認証のためにクライアントから有効な証明書を要求し、承認されたマシンとユーザーのみがアクセスできるようにします。
NetScalerのSSLベースの仮想サーバーを使用して、TLSクライアント認証を有効にできます。NetScaler SSL仮想サーバーでクライアント認証が有効になっている場合、NetScalerはSSLハンドシェイク中にクライアント証明書を要求します。アプライアンスは、発行者の署名や有効期限などの通常の制約について、クライアントから提示された証明書をチェックします。
次の図は、NetScalerにおけるTLSクライアント認証機能について説明しています。
TLSクライアント認証(/en-us/netscaler-k8s-ingress-controller/media/ssl-client-authentication.png)
TLSクライアント認証は、必須またはオプションに設定できます。 SSLクライアント認証が必須に設定されており、SSLクライアントが有効なクライアント証明書を提供しない場合、接続は切断されます。有効なクライアント証明書とは、特定の認証局によって署名または発行されており、期限切れまたは失効していないことを意味します。 オプションとしてマークされている場合、NetScalerはクライアント証明書を要求しますが、接続は切断されません。クライアントが証明書を提示しない場合や証明書が誤っている場合でも、NetScalerはSSLトランザクションを続行します。オプション設定は、二要素認証のような認証シナリオで役立ちます。

TLSクライアント認証の構成

TLSクライアント認証を構成するには、次の手順を実行します。
  1. NetScalerでTLSサポートを有効にします。
    NetScaler Ingress Controllerは、Ingress定義のTLSセクションをNetScalerでのTLSサポートの有効化に使用します。 以下は、Ingress定義のサンプルスニペットです。
    spec:
      tls:
       - secretName:
  2. CA証明書をKubernetes環境に適用します。
    既存の証明書に対してKubernetesシークレットを生成するには、次のkubectlコマンドを使用します。
    kubectl create secret generic tls-ca --from-file=tls.crt=cacerts.pem
    注:
    シークレットを作成する際に「tls.crt=」を指定する必要があります。このファイルは、NetScaler Ingress ControllerがCAシークレットを解析する際に使用されます。
  3. クライアント認証を有効にするようにIngressを構成します。
    Kubernetesにデプロイされたサービスに対するクライアント証明書認証に使用される、生成されたCAシークレットをアタッチするには、以下の注釈を指定する必要があります。
    ingress.citrix.com/ca-secret: '{"frontend-hotdrinks": "hotdrink-ca-secret"}'
    デフォルトでは、クライアント証明書認証はmandatoryに設定されていますが、フロントエンド構成でfrontend_sslprofile注釈を使用してoptionalに設定できます。
    ingress.citrix.com/frontend_sslprofile: '{"clientauth":"ENABLED", “clientcert”: “optional”}'
    注:
    frontend_sslprofileはフロントエンドのIngress構成のみをサポートします。詳細については、フロントエンド構成を参照してください。