NetScaler Ingress Controller を使用して NetScaler 上で証明書をインストール、リンク、更新する

最終公開日 : Oct 02, 2026
Ingress NetScaler では、証明書をインストール、リンク、更新できます。多くのサーバー証明書は、複数の階層型認証局 (CA) によって署名されています。これは、証明書がチェーンを形成することを意味します。
証明書チェーンは、SSL証明書と認証局 (CA) 証明書を含む、順序付けられた証明書のリストです。これにより、受信者は送信者とすべてのCAが信頼できることを検証できます。チェーンまたはパスはSSL証明書から始まり、チェーン内の各証明書は、チェーン内の次の証明書によって識別されるエンティティによって署名されます。
SSL証明書とルート証明書の間に位置する証明書は、チェーン証明書または中間証明書と呼ばれます。中間証明書は、SSL証明書の署名者または発行者です。ルートCA証明書は、中間証明書の署名者または発行者です。
中間証明書がサーバー (SSL証明書がインストールされている場所) にインストールされていない場合、一部のブラウザ、モバイルデバイス、およびアプリケーションがSSL証明書を信頼できなくなる可能性があります。SSL証明書をすべてのクライアントと互換性のあるものにするには、中間証明書がインストールされている必要があります。
証明書チェーン(/en-us/netscaler-k8s-ingress-controller/media/cert-chain.jpg)

Kubernetesでの証明書のリンク

NetScaler Ingress Controller は、Kubernetes の cert-manager を使用した TLS 証明書の自動プロビジョニングと更新をサポートしています。cert-manager は、Let’s Encrypt や HashiCorp Vault などのさまざまなソースから証明書を発行し、それらを Kubernetes シークレットに変換します。
次の図は、cert-manager が証明書管理をどのように実行するかを説明しています。 証明書管理(/en-us/netscaler-k8s-ingress-controller/media/cert-management.png)
複数のCA証明書が埋め込まれたPEM証明書からKubernetesシークレットを作成する場合、サーバー証明書を関連するCAにリンクする必要があります。 Kubernetesシークレットを適用する際に、Ingress NetScaler を使用して、サーバー証明書を関連するすべてのCAにリンクできます。サーバー証明書とCAをリンクすることで、受信者は送信者とCAが信頼できるかどうかを検証できます。
以下は、Ingress 定義の例です。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: frontendssl
spec:
  rules:
  - host: frontend.com
    http:
      paths:
      - backend:
          service:
            name: frontend
            port:
              number: 443
        path: /web-frontend/frontend.php
        pathType: Prefix
  tls:
  - secretName: certchain1
NetScaler で、証明書が NetScaler に追加されているかどうかを確認できます。次の手順を実行します。
  1. NetScaler コマンドラインインターフェイスにログオンします。
  2. 次のコマンドを使用して、証明書が NetScaler に追加されているかどうかを確認します。
    >show certkey
    サンプル出力については、NetScalerのドキュメント を参照してください。
  3. サーバー証明書とCAが以下のコマンドを使用してリンクされていることを確認します。
    >show certlink
    出力:
    1)  Cert Name: k8s-3KC24EQYHG6ZKEDAY5Y3SG26MT2   CA Cert Name: k8s-3KC24EQYHG6ZKEDAY5Y3SG2_ic1

    2)  Cert Name: k8s-3KC24EQYHG6ZKEDAY5Y3SG2_ic1   CA Cert Name: k8s-3KC24EQYHG6ZKEDAY5Y3SG2_ic2

NetScaler Ingress Controller を使用した NetScaler® の証明書キーバンドル

NetScaler Ingress Controller は、証明書バンドル (certkeybundle) 機能をサポートするようになりました。これは、リリース 14.1 ビルド 21.x 以降の NetScaler でサポートされています。この機能により、証明書チェーンの問題と、2つの証明書が中間CAを共有する場合に必要な追加の処理が解決されます。NetScaler での証明書キーバンドルのサポートの詳細については、「SSL 証明書キーバンドルのサポート」を参照してください。
NetScaler Ingress Controller は、以下の場所で提供される証明書に対して証明書バンドルを作成します。
  • Ingress の TLS セクション
  • serviceTypeLB の service.citrix.com/secret アノテーション
  • Listener のシークレット
この機能を有効にするには、NetScaler Ingress Controller に新しい環境変数 CERT_BUNDLE が追加されます。これは、Helm Charts の certBundle 引数を使用して設定できます。certBundle の設定の詳細については、「NetScaler Ingress Controller」の Helm Charts を参照してください。NetScaler Ingress Controller は、証明書バンドルを SSL タイプのコンテンツスイッチング仮想サーバーに追加します。
NetScaler での証明書バンドルの作成は、以下のシナリオでは機能しません。
  • セキュアなバックエンド (SSL タイプのサービスグループ) が構成されている。
  • 自己署名証明書が存在する。
  • ingress、servicetypeLB、または Listener で preconfigured-certkey アノテーションが設定されている。

注意事項

  1. NetScaler での証明書バンドルの作成は、以下の順序が満たされていない場合、失敗します。
    • サーバー証明書 (SC) はバンドルファイルの先頭に配置する必要があります。
    • IC は中間証明書です。IC は IC によって発行されます。証明書は順序通りに配置する必要があり、すべての中間証明書がバンドル内に存在する必要があります。
    • 証明書はPEM形式である必要があります。
    • サーバー証明書キー (SCK) はバンドル内のどこにでも配置できます。
    • 最大9つの中間証明書がサポートされています
  2. CERT_BUNDLE 機能でコントローラーをアップグレードすると、以前の証明書キーバインディングは削除され、新しい certkeybundle が作成されます。新しい certkeybundle は、SSLタイプのコンテキストスイッチング仮想サーバーにバインドされます。

NetScaler Ingress ControllerでのSSL CA証明書バンドルのサポート

リリース14.1ビルド29.x以降、NetScalerは、CA証明書バンドルをSSL仮想サーバー、サービス、およびサービスグループにバインドすることをサポートしています。このサポートにより、各CA証明書に対して個別のファイルを作成することなく、CA証明書バンドルをバインドできます。NetScaler Ingress Controllerは、Ingressまたは serviceTypeLB に基づく仮想サーバーおよびサービスグループへのSSL CA証明書バンドルのバインディングをサポートしています。
顧客はCA証明書バンドル用のKubernetesシークレットを作成し、アノテーションを使用して、IngressおよびserviceTypeLBでKubernetesシークレットを提供できます。
Kubectl create secret generic tls-ca --from-file=tls.crt=rootCA.crt
上記の例では、rootCA.crt にCA証明書チェーンが含まれています。
注:
  • 次の順序が満たされない場合、バンドルの作成は失敗します。
    • IC[1-9] は中間証明書です。IC[i] は IC[i+1] によって発行されます。証明書は順序通りに配置する必要があり、すべての中間証明書がバンドル内に存在し、ルート証明書が最後にある必要があります。 次の例では、証明書セット (bundle.pem) に以下のファイルが含まれています。
      • 1番目の中間証明書 (bundle_ic1)
      • 2番目の中間証明書 (bundle_ic2)
      • ルート証明書
    • 最大9つの中間証明書がサポートされています。
    • 証明書はPEM形式である必要があります。
  • CA証明書キーペアが仮想サーバー、サービス、またはサービスグループにバインドされている場合、CA証明書バンドルをバインドすることはできません。その逆も同様です。
  • 暗号化された秘密鍵はサポートされていません。
  • DTLSバインドとクラスターはサポートされていません。
  • OCSPとCRLはサポートされていません。
提供されたKubernetesシークレットをNetScalerでCA証明書バンドルとしてバインドするには、アノテーションでcacertbundle引数をtrueとして設定します。
イングレスの場合
ingress.citrix.com/ca-secret: '{"frontend-hotdrinks": {"ca-name": "abcca", "cacertbundle": "true"}, "coffee-beverage": {"ca-name": "abc1ca", "cacertbundle": "true"}}'
ingress.citrix.com/backend-ca-secret: '{"frontend-hotdrinks": {"ca-name": "abcca", "cacertbundle": "true"}, "coffee-beverage": {"ca-name": "abc1ca", "cacertbundle": "true"}}'
上記の例では、frontend-hotdrinksとcoffee-beverageはイングレス内のバックエンドサービスの名前であり、abccaとabc1caはCA証明書チェーン用に作成されたKubernetesシークレットです。
ServiceTypeLBの場合
service.citrix.com/ca-secret: '{"https-443":{"ca-name" : "abc1ca", "cacertbundle": "true"}}'
service.citrix.com/backend-ca-secret: '{"https-443":{"ca-name" : "abc1ca", "cacertbundle": "true"}}'
上記の例では、https-443はサービスのport-protocolの組み合わせであり、abc1caはCA証明書チェーン用に作成された2つのKubernetesシークレットです。

NetScalerの事前設定済みCA証明書バンドル

イングレスの場合
ingress.citrix.com/preconfigured-certkey: '{"certs": [ {"name": "ca3bun", "type": "ca"}]}'ingress.citrix.com/preconfigured-backend-ca-certkey: '{"frontend-hotdrinks": "ca3bun", "coffee-beverage": "ca3bun"}'
ServiceTypeLBの場合
service.citrix.com/preconfigured-backend-ca-certkey: '{"443-tcp": "ca3bun", "https-6443" :"ca3bun"}'service.citrix.com/preconfigured-ca-certkey: '{"443-tcp": ["ca3bun", "ca4bun"], "https-6443": "ca3bun"}'
上記の例では、ca3bun と ca4bun は、NetScaler で作成された CA 証明書バンドルです。

NetScaler Ingress Controller を介して NetScaler で作成された事前設定済み証明書バンドルのサポート

NetScaler Ingress Controller リリース 3.1.34 以降、証明書チェーン用に作成された Kubernetes Secret の証明書バンドル構成がサポートされています。お客様は、NetScaler で証明書チェーン用の certkey バンドルを作成できるようになり、それを Ingress または serviceTypeLB で提供できます。
Ingress の場合
ingress.citrix.com/preconfigured-certkey: '{"certs": [{"name": "abc4cert", "type": "default"}]}'
ingress.citrix.com/preconfigured-backend-certkey: '{"frontend-hotdrinks": "abc4cert", "coffee-beverage": "abc4cert"}'
上記の例では、abc4cert は、証明書チェーン用に NetScaler で作成された証明書バンドルであり、frontend-hotdrinks と coffee-beverage は、Ingress で指定されたバックエンドサービス名です。
serviceTypeLB の場合
service.citrix.com/preconfigured-backend-certkey: '{"443-tcp":"abc3cert","https-6443": "abc4cert"}'
service.citrix.com/preconfigured-certkey: '{"443-tcp": " abc3cert ", "https-6443": "abc4cert "}'
上記の例では、443-tcp と https-6443 は、serviceType LB で提供されるポートとプロトコルの組み合わせであり、abc3cert と abc4cert は、certkey バンドルを使用して NetScaler で作成された2つの証明書チェーンです。

参照