当記事では、Windows版のLogStare Collector をSSL化(HTTPS化)に対応する手順について記載します。
※SSL対応はLogStare Collector 1.7.0以降のバージョンにてご利用いただけます。
また、SSL化(HTTPS化)に対応したLogStare Collectorより別のLogStare Collectorへリストアした場合、下記のファイルはリストア手順では復元されないため、手動での更新が必要になります。
- jetty.xml
- kallista_env.cmd
目次
更新履歴
2024/03/11 keysotreファイルの作成例を追記しました。
事前準備
- LogStare Collector (以下 : LSC) のバージョンが1.7.0以降であることを確認します。
※システム設定 > ライセンス > LogStare Collector バージョンより確認します。
設定手順
手順の流れは以下の通りです。
keytoolコマンドを使って鍵を作成
Windowsコマンドプロンプトを用いて以下のkeytoolコマンドを実行して鍵を生成します。
ここでは例として以下を指定しています。
9,999日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています。
ディレクトリ名: CN=sample, OU=sample, O=sample, L=sample, ST=sample, C=JP
ファイルパス:「C:\LogStareCollector\etc\keystore」
パスワード:「SAPassword」
※「C:\LogStareCollector」はLogStare Collector のインストール先(デフォルト)を指します。
keytoolコマンド
cd C:\LogStareCollector\etc C:\LogStareCollector\etc>c:\LogStareCollector\jdk-XX.X.XX+X\bin\keytool -genkeypair -alias mykey -validity 9999 -keystore .\keystore -keyalg RSA
※「jdk-XX.X.XX+X」の部分は数字が入ります。お使いのLogStare Collectorのバージョンによって変わります。
キーストアのパスワードを入力してください: SAPassword(画面には表示されません)) 新規パスワードを再入力してください: SAPassword(画面には表示されません) 姓名は何ですか。 [Unknown]: sample 組織単位名は何ですか。 [Unknown]: sample 組織名は何ですか。 [Unknown]: sample 都市名または地域名は何ですか。 [Unknown]: sample 都道府県名または州名は何ですか。 [Unknown]: sample この単位に該当する2文字の国コードは何ですか。 [Unknown]: JP CN=sample, OU=sample, O=sample, L=sample, ST=sample, C=JPでよろしいですか。 [いいえ]: はい 9,999日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています ディレクトリ名: CN=sample, OU=sample, O=sample, L=sample, ST=sample, C=JP
以下コマンドでC:\LogStareCollector\etcディレクトリに新しく keystoreファイルが生成されていることを確認します。
C:\LogStareCollector\etc>dir C:\LogStareCollector\etc のディレクトリ 2020/01/06 09:05 <DIR> . 2020/01/06 09:05 <DIR> .. 2020/01/06 09:03 <DIR> db 2020/01/07 14:32 3,657 jetty.xml (2020/01/08 09:05 2,710 keystore) ここにファイルがあることを確認します 2020/01/04 15:21 192 license_lsc.dat 2010/01/13 16:48 1,832 log4j.xml 2020/01/21 18:21 1,248 lsc-site.conf 2020/01/07 14:28 <DIR> plugins
以下のコマンドで keystore ファイル内に作成した鍵が登録されていることを確認します。
利用するキーストアには 1 エントリが含まれていることを確認します。
(作成した鍵はデフォルトでは mykey という名前になっています)
C:\LogStareCollector\etc>c:\LogStareCollector\jdk-XX.X.X+X\bin\keytool -list -keystore keystore キーストアのパスワードを入力してください:SAPassword(パスワードは表示されません) キーストアのタイプ: PKCS12 キーストア・プロバイダ: SUN キーストアには1エントリが含まれます mykey,2020/01/08, PrivateKeyEntry, 証明書のフィンガプリント(SHA-256): AB:E1:52:B8:10:D....................
※仮に、以下のように LogStare Collector で利用するkeystoreファイルにはキーストアに 2 エントリがあるとエラーになってLSCの起動ができません。
LSC専用の keystore ファイルとしてエントリが 1 つになるよう新しい keystore ファイルを作成するか、利用しないエントリを削除してください。
C:\LogStareCollector\etc>c:\LogStareCollector\jdk-XX.X.X+X\bin\keytool -list -keystore keystore キーストアのパスワードを入力してください:SAPassword(パスワードは表示されません) キーストアのタイプ: PKCS12 キーストア・プロバイダ: SUN キーストアには2エントリが含まれます mykey,2020/01/08, PrivateKeyEntry, 証明書のフィンガプリント(SHA-256): 8D:EB:FC:86:EF:BB:01:0D:FE:29:F1:14:3B:.............. test2,2020/01/08, PrivateKeyEntry, 証明書のフィンガプリント(SHA-256): B1:E1:1F:74:53:75:39:A5:B1:9D:B0:78:46:C.............
※ エントリーが 2 つの状態で起動するとLSCのサービス起動時に以下のようなエラーが出ます。
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. java.lang.IllegalStateException: KeyStores with multiple certificates are not supported on the base class org.eclipse.jetty.util.ssl.SslContextFactory. (Use org.eclipse.jetty.util.ssl.SslContextFactory$Server or org.eclipse.jetty.util.ssl.SslContextFactory$Client instead) at org.eclipse.jetty.util.ssl.SslContextFactory.newSniX509ExtendedKeyManager(SslContextFactory.java:1289) at org.eclipse.jetty.util.ssl.SslContextFactory.getKeyManagers(SslContextFactory.java:1271) at org.eclipse.jetty.util.ssl.SslContextFactory.load(SslContextFactory.java:373)
ヒント:コマンド実行中に以下のようなメッセージが表示されてもご利用いただくことは可能です。 PKCS12に移行する方法は必要でしたら別途お問い合わせください。
---------------------------------------------------------------------------------------
Warning:
JKSキーストアは独自の形式を使用しています。
"keytool -importkeystore -srckeystore keystore -destkeystore keystore -deststoretype pkcs12"
を使用する業界標準の形式であるPKCS12に移行することをお薦めします。
---------------------------------------------------------------------------------------
例えば、上記の test2 の証明書を削除する場合は以下のコマンドを実行します。
cd C:\LogStareCollector\etc C:\LogStareCollector\etc>c:\LogStareCollector\jdk-XX.X.X+X\bin\keytool -delete -alias test2 -keystore keystore キーストアのパスワードを入力してください:SAPassword(パスワードは表示されません)
jetty.xml にて2か所設定を追記
[LogStare Collector インストール先]\etc\jetty.xml ファイルを開いて以下2か所の設定を追記します。
ここでは以下の値を例として設定します。
KeyStorePathの値「C:\LogStareCollector\etc\keystore」
KeyStorePasswordの値「SAPassword」
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory"> <Set name="KeyStorePath">C:\LogStareCollector\etc\keystore</Set> <Set name="KeyStorePassword">SAPassword</Set> </New>
※オプション設定として以下のHTTPSアクセス用ポート番号(8443)の変更ができます。
変更箇所は2か所あり、それぞれ同じ値にします。
・1箇所目
<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> <Set name="secureScheme">https</Set> <Set name="securePort">8443</Set> </New>
・2箇所目
</Arg> <Set name="port">8443</Set> </New> <New id="connector" class="org.eclipse.jetty.server.ServerConnector"> <Arg name="server">
kallista_env.cmd にて SSL_ENABLEを true へ変更
[LogStare Collector インストール先]\sbin\kallista_env.cmd ファイルの以下を追記します。
ここでは以下の値を例として設定します。
変更前
@rem Use SSL. set SSL_ENABLE=false
変更後
@rem Use SSL. set SSL_ENABLE=true
LogStare Collector を再起動
WindowsOS上で「Windows サービス」を開き、「LogStare Collector」サービスを再起動します。
LSCのGUIからログアウトします。
- デスクトップ上の「LogStare Collector(終了)」を実行します。
- コマンドプロンプトが自動で開き、LSCの終了処理が走ります。
- コマンドプロンプトが閉じれば完了です。LSCを停止します。
Windowsコマンドプロンプトによる再起動を行う場合は以下の通りです。
LogStare Collector を停止
cd C:\LogStareCollector\sbin C:\LogStareCollector\sbin>stop_kallista.bat C:\LogStareCollector\sbin>start /wait C:/LogStareCollector/jdk-17.0.2+8/bin/javaw.exe -DSTOP.PORT=17081 -DSTOP.KEY=kallista -jar "C:/LogStareCollector/lib/start.jar" --stop
※停止には時間がかかることがあります。
以下のコマンドで 「0.0.0.0:80」と書かれたローカル アドレスの行が無いことを確認します。
C:\LogStareCollector\sbin>netstat -an アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING ( TCP 0.0.0.0:80 0.0.0.0:0 LISTENING ) この行が無いことを確認します TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
LSCが停止していることを確認するには、コマンドプロンプトを起動して以下のコマンドを実行します。
wmic process where "name like 'java%%'" get name,ProcessID,commandline
「利用できるインスタンスがありません。」と表示されれば、LSCは停止しています。
LogStare Collector を起動
C:\LogStareCollector\sbin>start_kallista.bat C:\LogStareCollector\sbin>if true == true ( echo ssl-enable start /b C:/LogStareCollector/jdk-17.0.2+8/bin/javaw.exe -Xss256K -Xmx2048m -Xms128m -Dsa_kallista_home="C:/LogStareCollector" -Djava.io.tmpdir="C:/LogStareCollector/app_tmp" -Djdk.http.auth.tunneling.disabledSchemes="" -Dorg.apache.jasper.compiler.disablejsr199=true -Dorg.eclipse.jetty.annotations.AnnotationParser.LEVEL=OFF -Djava.net.preferIPv4Stack=true -jar "C:/LogStareCollector/lib/jetty-runner-9.4.0.v20161208.jar" --config "C:/LogStareCollector/etc/jetty.xml" --stop-port 17081 --stop-key kallista --path / --log "C:/LogStareCollector/logs/http.yyyy_mm_dd.log" "C:/LogStareCollector/webapp/lsc.war" ) else ( echo ssl-disable start /b C:/LogStareCollector/jdk-17.0.2+8/bin/javaw.exe -Xss256K -Xmx2048m -Xms128m -Dsa_kallista_home="C:/LogStareCollector" -Djava.io.tmpdir="C:/LogStareCollector/app_tmp" -Djdk.http.auth.tunneling.disabledSchemes="" -Dorg.apache.jasper.compiler.disablejsr199=true -Dorg.eclipse.jetty.annotations.AnnotationParser.LEVEL=OFF -Djava.net.preferIPv4Stack=true -jar "C:/LogStareCollector/lib/jetty-runner-9.4.0.v20161208.jar" --port 80 --stop-port 17081 --stop-key kallista --path / --log "C:/LogStareCollector/logs/http.yyyy_mm_dd.log" "C:/LogStareCollector/webapp/lsc.war" ) ssl-enable
ブラウザで管理画面へアクセス
ブラウザで「https://<<LogStare CollectorのIPアドレス>>:8443」でログイン画面を表示します。
例:<<LogStare CollectorのIPアドレス>>が 192.168.0.1の場合
https://192.168.0.1:8443
※再起動には時間がかかることがあります。再起動してしばらくしてからブラウザでアクセスしてください。
※「この接続ではプライバシーが保護されません」という表示が出る場合は、同じ画面上にある詳細設定ボタンや「192.168.0.1 にアクセスする(安全ではありません)」と言ったボタンを押すことでアクセスできます。
※ブラウザは Chrome または Edge を推奨しております。
HTTPSからHTTPアクセスへ戻す方法
ここではHTTPSをHTTPに戻す設定について説明します。
ブラウザからHTTPSでLSCへアクセスできないなどの理由で、HTTPによるアクセスに戻したい場合は、
設定ファイルのパラメーター SSL_ENABLE を false に変更し、LSCの再起動を行ってください。
※[LogStare Collector インストール先]\sbin\kallista_env.cmd
→set SSL_ENABLE=false
再起動後、ブラウザからHTTPでLSCへアクセスしてログイン画面が出ることを確認します。
例:<<LogStare CollectorのIPアドレス>>が 192.168.0.1の場合
http://192.168.0.1:80
※再起動には時間がかかることがあります。再起動してしばらくしてからブラウザでアクセスしてください。
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。