サーバー認証
NetScaler ADCアプライアンスはWebサーバーに代わってSSLオフロードとアクセラレーションを実行するため、アプライアンスは通常、Webサーバーの証明書を認証しません。ただし、エンドツーエンド SSL 暗号化を必要とする展開環境では、サーバを認証できます。
このような状況では、アプライアンスがSSLクライアントになり、SSLサーバーとの安全なトランザクションを実行します。証明書が SSL サービスにバインドされている CA がサーバー証明書に署名していることを確認し、サーバー証明書の有効性を確認します。
サーバーを認証するには、サーバー認証を有効にし、サーバーの証明書に署名した CA の証明書を ADC アプライアンスの SSL サービスにバインドします。証明書をバインドする場合、CA オプションとしてバインドを指定する必要があります。
NetScalerはクロス署名証明書の検証をサポートしています。つまり、証明書が複数の発行者によって署名されている場合、ルート証明書への有効なパスが少なくとも 1 つあれば検証は成功します。リリース13.1ビルド42.x以前では、証明書チェーン内の証明書の1つがクロス署名されていて、ルート証明書へのパスが複数ある場合、アプライアンスは1つのパスのみをチェックしていました。そのパスが有効でない場合、検証は失敗しました。
サーバー証明書認証の有効化(または無効化)
CLI と GUI を使用して、サーバー証明書認証を有効または無効にできます。
CLI を使用してサーバー証明書認証を有効化 (または無効化) する
コマンドプロンプトで次のコマンドを入力して、サーバー証明書認証を有効にし、構成を確認します。
set ssl service <serviceName> -serverAuth ( ENABLED | DISABLED )
show ssl service <serviceName>
<!--NeedCopy-->
例:
set ssl service ssl-service-1 -serverAuth ENABLED
show ssl service ssl-service-1
Advanced SSL configuration for Back-end SSL Service ssl-service-1:`
DH: DISABLED
Ephemeral RSA: DISABLED
Session Reuse: ENABLED Timeout: 300 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
Server Auth: ENABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED
1) Cipher Name: ALL
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
GUI を使用してサーバー証明書認証を有効化 (または無効化) する
- [ トラフィック管理] > [負荷分散] > [サービス] に移動し、SSL サービスを開きます。
- 「SSL パラメータ」セクションで、「サーバー認証を有効にする」を選択し、共通名を指定します。
- [詳細設定] で [証明書] を選択し、CA 証明書をサービスにバインドします。
CLI を使用して CA 証明書をサービスにバインドします
コマンドプロンプトで次のコマンドを入力して、CA 証明書をサービスにバインドし、構成を確認します。
bind ssl service <serviceName> -certkeyName <string> -CA
show ssl service <serviceName>
<!--NeedCopy-->
例:
bind ssl service ssl-service-1 -certkeyName samplecertkey -CA
show ssl service ssl-service-1
Advanced SSL configuration for Back-end SSL Service ssl-service-1:
DH: DISABLED
Ephemeral RSA: DISABLED
Session Reuse: ENABLED Timeout: 300 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
Server Auth: ENABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED
1) CertKey Name: samplecertkey CA Certificate CRLCheck: Optional
1) Cipher Name: ALL
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
サーバー証明書認証の共通名の設定
サーバー認証を有効にしたエンドツーエンド暗号化では、SSL サービスまたはサービスグループの設定に共通名を含めることができます。指定した名前は、SSL ハンドシェイク中にサーバー証明書の共通名と比較されます。2 つの名前が一致すれば、ハンドシェイクは成功します。 共通名が一致しない場合、サービスまたはサービスグループに指定された共通名が、証明書のサブジェクト代替名 (SAN) フィールドの値と比較されます。これらの値のいずれかに一致すれば、ハンドシェイクは成功します。この構成は、たとえば、ファイアウォールの内側に 2 つのサーバーがあり、一方のサーバーが他方のサーバーの ID を偽装している場合に特に役立ちます。共通名がチェックされていない場合、IP アドレスが一致すれば、どちらかのサーバから提示された証明書が受け入れられます。
注: SAN フィールドのドメイン名、URL、電子メール ID の DNS エントリのみが比較されます。
CLI を使用して SSL サービスまたはサービスグループの共通名検証を設定する
コマンドプロンプトで次のコマンドを入力して、共通名検証によるサーバー認証を指定し、構成を確認します。
-
サービスの共通名を設定するには、次のように入力します。
set ssl service <serviceName> -commonName <string> -serverAuth ENABLED show ssl service <serviceName> <!--NeedCopy-->
-
サービスグループの共通名を設定するには、次のように入力します。
set ssl serviceGroup <serviceGroupName> -commonName <string> -serverAuth ENABLED show ssl serviceGroup <serviceGroupName> <!--NeedCopy-->
例:
set ssl service svc1 -commonName xyz.com -serverAuth ENABLED
show ssl service svc
Advanced SSL configuration for Back-end SSL Service svc1:
DH: DISABLED
Ephemeral RSA: DISABLED
Session Reuse: ENABLED Timeout: 300 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
Server Auth: ENABLED Common Name: www.xyz.com
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED
1) CertKey Name: cacert CA Certificate OCSPCheck: Optional
1) Cipher Name: ALL
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
GUI を使用して SSL サービスまたはサービスグループの共通名検証を設定する
- [ トラフィック管理] > [負荷分散] > [サービス ] に移動するか、[ トラフィック管理] > [負荷分散] > [サービスグループ] に移動し、サービスまたはサービスグループを開きます。
- 「 SSL パラメータ 」セクションで、「 サーバー認証を有効にする」を選択し、共通名を指定します。