Kubernetesシークレットリソースを介したLoadBalancerタイプのサービス用SSL証明書

最終公開日 : Oct 02, 2026
このセクションでは、SSL証明書を KubernetesシークレットとしてLoadBalancerタイプのサービスで使用する方法について説明します。アノテーションservice.citrix.com/service-typeがSSLまたはSSL_TCPの場合、証明書が適用されます。

NetScaler Ingress Controllerのデフォルト証明書を使用する

SSL証明書が提供されていない場合、デフォルトのNetScaler Ingress Controller証明書を使用して、SSLおよびSSL SNI証明書を構成できます。default-ssl-certificateおよびdefault-ssl-sni-certificate引数を使用して、それぞれ非SNI証明書とSNI証明書を構成するためのシークレットを提供できます。
`--default-ssl-certificate <NAMESPACE>/<SECRET_NAME>`
`--default-ssl-sni-certificate <NAMESPACE>/<SECRET_NAME>`

KubernetesシークレットとしてのSSL証明書のためのサービスアノテーション

NetScaler Ingress Controllerは、LoadBalancerタイプのサービスに対してKubernetesシークレットとして保存されているSSL証明書を使用するための以下のサービスアノテーションを提供します。
サービスアノテーション 説明
service.citrix.com/secret このアノテーションを使用して、フロントエンドサーバー証明書のシークレットリソース名を指定します。これには証明書とキーが含まれている必要があります。証明書セクションに、サーバー証明書に続いて中間CA証明書のリストを提供することもできます。これらの中間CAは、SSLハンドシェイク中に自動的にリンクされ、クライアントに送信されます。複数のフロントエンドサーバー証明書をバインドするには、証明書用に構成されたカンマ区切りのシークレットのリストを提供します。例: service.citrix.com/secret: apache-secret1,apache-secret2。
service.citrix.com/ca-secret このアノテーションを使用して、クライアント証明書認証用のCA証明書を提供します。この証明書は、NetScalerのフロントエンドSSL仮想サーバーにバインドされます。
service.citrix.com/backend-secret NetScalerとワークロード間のバックエンド通信が暗号化されたチャネル上で行われ、ワークロードでクライアント認証が必要な場合は、このアノテーションを使用します。この証明書は、SSLハンドシェイク中にサーバーに送信され、バックエンドSSLサービスグループにバインドされます。
service.citrix.com/backend-ca-secret このアノテーションを使用して、バックエンドサーバー証明書を認証するサーバー認証を有効にします。この設定により、サーバーのCA証明書がNetScaler上のSSLサービスにバインドされます。
service.citrix.com/preconfigured-certkey このアノテーションを使用して、フロントエンドサーバー証明書として使用するNetScaler内の既存の証明書キーの名前を指定します。複数のフロントエンドサーバー証明書をバインドするには、証明書用にすでに設定されているコンマ区切りの証明書キーのリストを指定します。例: service.citrix.com/preconfigured-certkey: preconfcert1,preconfcert2。
service.citrix.com/preconfigured-ca-certkey このアノテーションを使用して、クライアント証明書認証用のCA証明書として使用するNetScaler内の事前設定された証明書キーの名前を指定します。この証明書は、NetScalerのフロントエンドSSL仮想サーバーにバインドされます。
service.citrix.com/preconfigured-backend-certkey このアノテーションを使用して、バックエンドSSLサービスグループにバインドするNetScaler内の事前設定された証明書キーの名前を指定します。この証明書は、サーバー認証のためにSSLハンドシェイク中にサーバーに送信されます。
service.citrix.com/preconfigured-backend-ca-certkey このアノテーションを使用して、サーバー認証のためにバックエンドSSLサービスグループにバインドするNetScaler内の事前設定されたCA証明書キーの名前を指定します。

例: フロントエンドシークレットとフロントエンドCAシークレット

service.citrix.com/secretアノテーションの例をいくつか示します。
次のアノテーションは、サービス内のすべてのポートに適用されます。
service.citrix.com/secret: hotdrink-secret
キーとしてportnameまたはport-protocolのいずれかを指定することで、特定のポートに適用される証明書を指定するために次の表記を使用できます。
        # port-protocol : secret

        service.citrix.com/secret: '{"443-tcp": "hotdrink-secret", "8443-tcp": "hotdrink-secret"}'

         # portname: secret

        service.citrix.com/secret: '{"https": "hotdrink-secret"}'
service.citrix.com/ca-secretアノテーションの例をいくつか示します。
Kubernetesにデプロイされたサービスのクライアント証明書認証に使用される生成されたCAシークレットをアタッチするには、次のアノテーションを指定する必要があります。
以下の注釈は、サービス内のすべてのポートに適用されます。
service.citrix.com/ca-secret: hotdrink-ca-secret
キーとしてportnameまたはport-protocolのいずれかを与えることで、特定のポートに適用される証明書を指定するために、以下の表記を使用できます。
  # port-protocol: secret
  service.citrix.com/ca-secret: '{"443-tcp": "hotdrink-ca-secret", "8443-tcp": "hotdrink-ca-secret"}'

  # portname: secret

  service.citrix.com/ca-secret: '{"https": "hotdrink-ca-secret"}'

例: バックエンドシークレットとバックエンドCAシークレット

service.citrix.com/backend-secret注釈の例をいくつか示します。
  # port-protocol: secret
  service.citrix.com/backend-secret: '{"443-tcp": "hotdrink-secret", "8443-tcp": "hotdrink-secret"}'

  # portname: secret

  service.citrix.com/backend-secret: '{"tea-443": "hotdrink-secret", "tea-8443": "hotdrink-secret"}'

  # applicable to all ports

  service.citrix.com/backend-secret: "hotdrink-secret"
service.citrix.com/backend-ca-secret注釈の例をいくつか示します。
  # port-proto: secret
  service.citrix.com/backend-ca-secret: '{"443-tcp": "coffee-ca", "8443-tcp": "tea-ca"}'

  # portname: secret

  service.citrix.com/backend-ca-secret: '{"coffee-443": "coffee-ca", "tea-8443": "tea-ca"}'

  # applicable to all ports

  service.citrix.com/backend-ca-secret: "hotdrink-ca-secret"