ビュー:

概要

IWSVAおよびIWSSでは、HTTPSサイトの検査機能としてHTTPS復号化機能をご用意しております。
当該機能は、管理画面の以下から有効化できます。

  [HTTP] > [HTTPS復号化] > [ポリシー] > "HTTPS復号化を有効にする"

HTTPS復号化機能では、各HTTPSサーバのサーバ証明書を検証するため、IWSVAおよびIWSSは必要となるCRL(証明書失効リスト)ファイルを定期的に取得いたします。

HTTP検索サービスの各子プロセスは、HTTPS復号化対象のHTTPSサイトにアクセスする際、当該HTTPSサイトに関連するCRL情報の有無を確認いたします。
CRL情報がメモリに無い場合には、取得済みのCRLファイルを探し、該当するCRL情報をメモリに展開いたします。メモリに確保されたCRL情報が不要と判断されると、子プロセスは当該情報をメモリから解放します。

そのため、必要となるCRLファイル数が増加すると、各子プロセスが確保するメモリ使用量も増加することになります。
 

HTTP検索サービスの子プロセスのメモリ使用量の目安

IWSVAおよびIWSSが取得したCRLファイルは、/var/iwss/https/certstore/crl配下に保存されます。
HTTP検索サービスの子プロセスが1つのCRLファイルの情報をメモリに展開する際に必要となるメモリサイズの目安は、「実際のCRLファイルサイズの約10倍」となります。
CRLファイルサイズの合計は、IWSVAおよびIWSSのLinuxコンソールにrootユーザでログインし、以下のコマンドを実行いただくことで確認可能です。

 # du -sh /var/iwss/https/certstore/crl
 93M    /var/iwss/https/certstore/crl


上記の出力例ですと、子プロセスはCRL情報用のメモリ領域として最大 93MB x 10 = 930MB を使用することになります。

IWSVAおよびIWSSで起動するHTTP検索サービスの子プロセス数は、こちらのQAにてご案内の通り、CPUのコア数とOSのメモリサイズに応じて自動的に調整されます。
子プロセス数が4である場合、最大 4 x 930MB = 3.72GB がCRL情報用のメモリ領域として必要になります。
OSのメモリ不足防止の観点から、HTTPS復号化機能をご利用の場合は、CRL情報用のメモリ領域分のメモリサイズの増強をご検討ください。

なお、現在のOSのメモリ使用状況の確認方法つきましては、後述の「参考: OSのメモリ使用状況の確認例」をご参照ください。
また、「CRLファイル情報を利用しない状態でのIWSVA/IWSSのOSのメモリ使用状況」を確認されたい場合は、後述の「CRLファイル情報の利用を強制停止させる方法」を一時的に実施いただいたうえで、「参考: OSのメモリ使用状況の確認例」でOSのメモリ使用状況をご確認ください。
 

例1:HTTPS復号化機能をこれからご利用になる場合

例として、CRLファイルサイズ合計が100MBになることを想定し、OSの空きメモリが「子プロセス数 x 10 x 100MB」以上あることをご確認ください。子プロセス数が4である場合、4GB以上となります。安全を考慮される場合、予め4GB以上のメモリサイズの増強をご検討ください。
 

例2:例1の後、CRLファイルサイズ合計が150MBに増加している場合

CRLファイルサイズ合計が50MB増加しています。そのため、CRL情報用のメモリ領域も最大で「子プロセス数 x 10 x 50MB」増加いたします。子プロセス数が4である場合、2GB程度の増加が見込まれます。現在のOSの空きメモリ状況を考慮し、必要であれば増加分である2GBのメモリサイズ増強をご検討ください。

参考:OSのメモリ使用状況の確認例

1. IWSVA/IWSSのLinuxコンソールにrootユーザでログインします。
 
2. 以下のコマンドを実行し、現在から1日分のメモリ情報を取得します。
例)バックグラウンドで「60秒間に1回、OSのメモリ情報(単位:MB)を/var/tmp/memory.logに出力」を1440回実行

 # free -m -s 60 -c 1440 > /var/tmp/memory.log &

3. 2の実行から1日後、/var/tmp/memory.logの内容を確認します。
freeの出力結果のうち、buffer/cache領域を差し引いた"-/+ buffers/cache"の行を確認します。
以下の例の場合、used(使用メモリサイズ)が12883MB、free(空きメモリサイス)が2684MBと確認できます。

===
             total       used       free     shared    buffers     cached
Mem:         15568      15343        224          0        302       2157
-/+ buffers/cache:      12883       2684
Swap:         2047          1       2046
===

以下のコマンドの実行結果で、/var/tmp/memory.logの結果から最も使用メモリサイズが大きいタイミングの"-/+ buffers/cache"の行が得られます。
当該行のused値とfree値から、過去1日におけるOSの使用メモリサイズのピーク状況をご確認ください。

 # grep "buffers/cache" /var/tmp/memory.log | sort | tail -1

制限事項

CRL情報は、管理画面の以下の設定で使用されます。

 [HTTP] > [HTTPS復号化] > [設定] > "CRLによる証明書失効確認"

現在の仕様では、当該設定の有効無効を問わず、HTTP検索サービスはCRL情報をメモリに展開します。
当該設定が有効である場合のみ、証明書の失効を検知するとWebブラウザに警告画面を表示する動作となります。
当該設定は使用せず、CRL情報のメモリへの展開を抑止される場合には、後述の「CRLファイル情報の利用を強制停止させる方法」の手順を実施してください。
なお、「当該設定が有効である場合のみにCRL情報をメモリに展開する」対応は、今後のHotfixで実装予定です。Hotfixが提供されましたら、本ページを更新いたします。
 

CRLファイル情報の利用を強制停止させる方法

1. IWSVA/IWSS管理画面にて、以下の設定を無効にします。
   [HTTP] > [HTTPS復号化] > [設定] > "CRLによる証明書失効確認"
2. IWSVAおよびIWSSのLinuxコンソールにrootユーザでログインします。
 
3. viエディタで、/var/iwss/https/certstore/script/rehash_crl.shの以下の行を編集します。
  (変更対象行:47行目)
  ln -sf "$crl_file" "${hash}.r$index"

  (変更後)
  #ln -sf "$crl_file" "${hash}.r$index"
4. CRL情報の再構築のため、以下のコマンドを実行します。
  # su - iscan -c /usr/iwss/iwsva_https_cron.sh > /dev/null 2>&1

  ご注意:
  本コマンドの実行でHTTP検索サービスの再起動は発生いたしません。
  本コマンドの実行完了には、5~10分程度の時間を要します。
5.メモリ使用状況をリセットするため、HTTP検索サービスを再起動します。
 #  /etc/iscan/S99ISproxy stop
 #  /etc/iscan/S99ISproxy start

強制停止させた状態から元に戻す場合

1. IWSVA/IWSS管理画面にて、以下の設定を有効にします。
   [HTTP] > [HTTPS復号化] > [設定] > "CRLによる証明書失効確認"
2. IWSVAおよびIWSSのLinuxコンソールにrootユーザでログインします。
 
3. viエディタで、/var/iwss/https/certstore/script/rehash_crl.shの以下の行を編集します。
  (変更対象行:47行目)
  #ln -sf "$crl_file" "${hash}.r$index"

  (変更後)
  ln -sf "$crl_file" "${hash}.r$index"
4. CRL情報の再構築のため、以下のコマンドを実行します。
  # su - iscan -c /usr/iwss/iwsva_https_cron.sh > /dev/null 2>&1

  ご注意:
  本コマンドの実行でHTTP検索サービスの再起動は発生いたしません。
  本コマンドの実行完了には、5~10分程度の時間を要します。
5.メモリ使用状況をリセットするため、HTTP検索サービスを再起動します。
 #  /etc/iscan/S99ISproxy stop
 #  /etc/iscan/S99ISproxy start