こんにちは。SharePoint & FAST サポートの銭 (kusen) です。
FAST ESP の SAM 証明書が 2017/3/17 (金) 22:00 で有効期限が切れて検索できない事象について、お客様からお問い合わせをいただいております。
今回は当該事象について説明したいと思います。
<目次>
- 事象
- 原因
- 回避策
1 事象
=========
日本時間 2017 年 3 月 17 日 (金) の夜間 22:00 時以降に、Security Access Module (以降は SAM と記載) モジュールが入っている FAST ESP の環境では、検索結果に 0 件が表示される事象が発生しました。
また、Admin GUI から以下のような ERROR ログが記録されます。
[2017-03-18 00:49:00] ERROR qrserver fastespserver.contoso.com 15100 systemmsg FastQT_Security: Security QT couldn’t expand uid [SPS:A9904012] (FDSSMAPI call failed)
[2017-03-18 00:49:00] ERROR qrserver fastespserver.contoso.com 15100 systemmsg FastQT_Security: Security QT – Group Expansion failed for user id "SPS:A9904012". API error: {Failed to initialize FDSSMAPI SSL initialization failed: missing or invalid certificate? file: C:\esp\etc/FDSSM_client.pem FDSSMAPI call (GetGroupExpansionFilter) aborted, FDSSMAPI not initialized }
[2017-03-18 00:48:20] ERROR qrserver fastespserver.contoso.com 15100 systemmsg FastQT_Security: Failed to initialize FDSSMAPI: SSL initialization failed: missing or invalid certificate? file: C:\esp\etc/FDSSM_client.pem
[2017-03-18 00:48:20] WARNING qrserver fastespserver.contoso.com 15100 systemmsg FastQT_Security: SSL Init (SSL client): Certificate in C:\esp\etc/FDSSM_client.pem expires at 2017-03-17 13:00 UTC
[2017-03-18 00:48:20] ERROR qrserver fastespserver.contoso.com 15100 systemmsg FastQT_Security: SSL Init: CA certificate at level 1: certificate has expired
[2017-03-18 00:48:20] ERROR qrserver fastespserver.contoso.com 15100 systemmsg FastQT_Security: SSL Init (SSL client): Certificate in C:\esp\etc/FDSSM_client.pem is not valid
2 原因
=========
事象の原因は、SAM 関連処理で使用される証明書 (JAVA_server.key や FDSSM_client.pem, FDSSM_private.pem など) の有効期限が切れたために発生しております。
本証明書は SAM のモジュール インストール時に既定で用意される証明書であり、協定世界時の 2017 年 3 月 17 日 13時 (日本時間 2017 年 3 月 17 日 22時) に有効期限が切れる動作となります。
事象を解消するためには、以下の [回避策] をご参考いただき、手動による証明書の更新が必要となります。
3 回避策
==========
SAM をインストールした際、既定では自己証明書を使用しておりますが、それ以外に公的機関から発行された証明書も使用可能です。
現時点でお問い合わせいただいたお客様におかれまして、全てが自己証明書をご利用いただいている状況を鑑みて、以下に自己証明書を利用した際の手順を記載いたします。
なお、公的な証明書から発行された証明書などを利用しているお客様の環境にて本事象が発生した場合は、別途マニュアル (注1) を参照し、証明書の更新をご実施くださいますようお願いいたします。
(注1)
FAST_ESP_SecurityAccessModule.pdf の [APPENDIX A – CREATING YOUR OWN JAVA KEYSTORES AND SSL CERTIFICATES] 部分をご参照ください。
<事前説明>
以下は Windows 版 FAST ESP の手順を例として記載いたします。
<手順>
- key ファイルの作成
- pem ファイルの配置
- QRserver と SAM 関連コンポーネントの再起動
- key ファイルの作成
———————
1-1) SAM サーバ上にログインし、管理者権限でコマンド プロンプトを立ち上げます。
1-2) 以下のコマンドを実行し、key ファイルを再作成します。
<コマンド>
cd %JAVA_HOME%\bin
keytool -genkey -keyalg “RSA” -storetype jks -dname “cn=SAM Key” -validity <days> -alias sam -keypass <key_password> -keystore <key_store_path> -storepass <key_password>
<パラメータ説明>
days : 証明書の有効期限日数
key_password : SAM の証明書作成時に使用するパスワード (SAM 構成時の既定値 : george)
key_store_path : key ファイルの出力パス。念のためローカル パスをご利用ください。
<コマンド例>
以下は days を 3650 日 (約 10 年)、key_password が george であり、key_store_path が C:\test\JAVA_server.key の場合の例を記載いたします。
cd %JAVA_HOME%\bin
keytool -genkey -keyalg “RSA” -storetype jks -dname “cn=SAM Key” -validity 3650 -alias sam -keypass george -keystore C:\test\JAVA_server.key -storepass george
1-3) 出力先のディレクトリ (例 : C:\test\) にアクセスし、JAVA_server.key をコピーし、JAVA_client.key にリネームします。
1-4) 手順 1-3) で作成した 2 つの key ファイル (JAVA_server.key と JAVA_client.key) を全ての SAM サーバ上の以下のディレクトリに配置します (既存の JAVA_server.key 及び JAVA_client.key のバックアップを別途ご取得ください)。
配置ディレクトリ : %FASTSEARCH%\lib\mars
配置ファイル : JAVA_server.key, JAVA_client.key
1-5) SAM の Admin GUI にアクセスします。
1-6) 画面上部の [Advanced Configuration] をクリックし、表示された画面の下部の [Export KeyStore Form] をクリックします。
1-7) 表示された画面にて、以下の情報を入力します。
– Java KeyStore Path (Full Path on the Server) : JAVA_server.key のパス
※ 上記 %FASTSEARCH%\lib\mars\JAVA_server.key のパスを指定します。念のためここでは絶対パスをご指定ください。 (例 : C:\esp\lib\mars\JAVA_server.key)
– Java KeyStore Password : 上述 keytool で key ファイル生成時に指定したパスワード (例 : george)
– Alias of the RSA Key to export : sam
– Password of the Key : 上述 keytool で key ファイル生成時に指定したパスワード (例 : george)
– Aliases of Additional Certificates to include : 空白のままで構いません。
– File name of the generated PEM file : “pem ファイル出力先” + “java.pem” (例 : C:\test\java.pem)
1-8) “Export” ボタン押下します。
※ ファイルが既に存在した場合、HTTP 500 エラーが発生することを弊社の環境にて確認しておりますので、テスト ディレクトリなどに出力ファイル名が重複しないようにご指定くださいますようお願いいたします。
1-9) “Export” 完了後、画面上部の [Advanced Configuration] をクリックし、表示された画面 (Advanced Configuration) の中央部分の [Miscellaneous Setting] セクションにて、[Key Store Password] (例 : george) と [Trust Store Password] (例 : george) を入力します。
1-10) [Save] ボタンをクリックします。
※ 設定が反映されるまで数分ほどしばらくお待ちください。
1-11) 出力先のディレクトリ (例 : C:\test\) にアクセスし、出力された pem ファイルを下記の通りにリネームします。
1-11-1) java.pem をコピーし、FDSSM_client.pem にリネームします。
1-11-2) java.pem をコピーし、FDSSM_private.pem にリネームします。
- pem ファイルの配置
———————
2-1) 前述の手順 1-11-1) でリネームした FDSSM_client.pem を、ご利用の全ての Document Processing サーバーおよび QRserver 上の以下のディレクトリに配置します (既存の FDSSM_client.pem のバックアップを別途ご取得ください)。
配置ディレクトリ : %FASTSEARCH%\etc
配置ファイル : FDSSM_client.pem
2-2) 前述の手順 1-11-1) および 1-11-2) でリネームした FDSSM_private.pem と FDSSM_client.pem を、ご利用の全ての SAM サーバー上の以下のディレクトリに配置します (既存の FDSSM_private.pem 、FDSSM_client.pem のバックアップを別途ご取得ください)。
配置ディレクトリ : %FASTSEARCH%\securitymanager\main
配置ファイル : FDSSM_private.pem, FDSSM_client.pem
- QRserver と SAM 関連コンポーネントの再起動
—————————-
3-1) QRserver 上にログインします。
3-2) 以下のコマンドを実行し、QRserver の再起動を実施します。
nctrl stop qrserver
nctrl start qrserver
3-3) SAM サーバにログインします。
3-4) 以下のコマンドを実行し、SAM 関連コンポーネントの再起動を実施します。
nctrl stop sec-ntfs
nctrl start sec-ntfs
※ Admin GUI よりもご実施いただけます。補足ではございますが、以下に Admin GUI より実施する方法を記載いたします。
補足 – Admin GUI より再起動する方法
————————————
1) FAST ESP の Admin GUI を立ち上げます。
2) [System Management] タブにアクセスします。
3) 画面中央部分の [Show extended information for all nodes] をクリックします。
4) 展開された画面において、Process Name が qrserver, sec-ntfs であるコンポーネントを全て再起動します。
※ 再起動ボタンは、一番右側の矢印付きのものになります。
今回の投稿は以上となります。
————————————————————
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。