Kubernetesシークレットリソースを介したLoadBalancerタイプのサービス用SSL証明書
このセクションでは、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"