当記事では、Linux版のLogStare Collector をSSL化(HTTPS化)に対応する手順について記載します。
※SSL対応はLogStare Collector 1.7.0以降のバージョンにてご利用いただけます。
また、SSL化(HTTPS化)に対応したLogStare Collectorより別のLogStare Collectorへリストアした場合、下記のファイルはリストア手順では復元されないため、手動での更新が必要になります。
- jetty.xml
- kallista_env.sh
目次
更新履歴
2024/04/2 keysotreファイルの作成例を追記しました。
事前準備
- LogStare Collector (以下 : LSC) のバージョンが1.7.0以降であることを確認します。
※システム設定 > ライセンス > LogStare Collector バージョンより確認します。
設定手順
手順の流れは以下の通りです。
keytoolコマンドを使って鍵を作成
keytoolコマンドを実行して鍵を生成します。
ここでは例として以下を指定しています。
9,999日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています。
ディレクトリ名: CN=sample, OU=sample, O=sample, L=sample, ST=sample, C=JP
ファイルパス:「/usr/local/logstarecollector/etc/keystore」
パスワード:「SAPassword」
※「/usr/local/logstarecollector」はLogStare Collector のインストール先(デフォルト)を指します。
keytoolコマンド
[root@localhost etc]# cd /usr/local/logstarecollector/etc [root@localhost etc]# /usr/lib/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
以下コマンドで/usr/local/logstarecollector/etcディレクトリに新しく keystoreファイルが生成されていることを確認します。
[root@localhost etc]# ls -al 合計 20 drw-r--r-- 2 root root 46 2月 5 2021 db.v2.1.2 -rw-r--r-- 1 root root 3682 4月 10 16:00 jetty.xml (-rw-r--r-- 1 root root 2710 4月 10 15:03 keystore)ここにファイルがあることを確認します -rw-r--r-- 1 root root 1832 6月 12 2018 log4j.xml -rw-r--r-- 1 root root 1248 4月 20 2021 lsc-site.conf drw-r--r-- 2 root root 4096 6月 25 2021 plugins
以下のコマンドで keystore ファイル内に作成した鍵が登録されていることを確認します。
利用するキーストアには 1 エントリが含まれていることを確認します。
(作成した鍵はデフォルトでは mykey という名前になっています)
[root@localhost etc]# /usr/lib/jdk-XX.X.XX+X/bin/keytool -list -keystore keystore キーストアのパスワードを入力してください: (パスワードは表示されません) キーストアのタイプ: PKCS12 キーストア・プロバイダ: SUN キーストアには1エントリが含まれます mykey,2024/04/09, PrivateKeyEntry, 証明書のフィンガプリント(SHA-256): 67:7B:91:64.........
※仮に、以下のように LogStare Collector で利用するkeystoreファイルにはキーストアに 2 エントリがあるとエラーになってLSCの起動ができません。
LSC専用の keystore ファイルとしてエントリが 1 つになるよう新しい keystore ファイルを作成するか、利用しないエントリを削除してください。
[root@localhost etc]# /usr/lib/jdk-XX.X.XX+X/bin/keytool -list -keystore keystore キーストアのパスワードを入力してください:SAPassword(パスワードは表示されません) キーストアのタイプ: PKCS12 キーストア・プロバイダ: SUN キーストアには2エントリが含まれます mykey,2024/04/10, PrivateKeyEntry, 証明書のフィンガプリント(SHA-256): D4:AD:93:AA...... test2,2024/04/12, PrivateKeyEntry, 証明書のフィンガプリント(SHA-256): BC:37:3D:04......
※ エントリーが 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 の証明書を削除する場合は以下のコマンドを実行します。
[root@localhost etc]# cd /usr/local/LogStareCollector/etc [root@localhost etc]# /usr/lib/jdk-XX.X.XX+X/bin/keytool -delete -alias test2 -keystore ./keystore キーストアのパスワードを入力してください:SAPassword(パスワードは表示されません)
jetty.xml にて2か所設定を追記
[LogStare Collector インストール先]/etc/jetty.xml ファイルを開いて以下2か所の設定を追記します。
ここでは以下の値を例として設定します。
KeyStorePathの値「/usr/local/logstarecollector/etc/keystore」
KeyStorePasswordの値「SAPassword」
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory"> <Set name="KeyStorePath">/usr/local/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.sh にて SSL_ENABLEを true へ変更
[LogStare Collector インストール先]/sbin/kallista_env.sh ファイルの以下を編集します。
ここでは以下の値を例として設定します。
変更前
@rem Use SSL. set SSL_ENABLE=false
変更後
@rem Use SSL. set SSL_ENABLE=true
LogStare Collector を再起動
「LogStare Collector」サービスを再起動します。
LogStare Collector を停止
{ LSCインストールパス}へ移動します。
[root@localhost etc]# cd {LSCインストールパス} [root@localhost logstarecollector]#
「./logstarecollector/sbin/stop_kallista.sh」を実行します。
[root@localhost local]# ./logstarecollector/sbin/stop_kallista.sh
※停止には時間がかかることがあります。
以下のコマンドで 「0.0.0.0:80」と書かれたローカル アドレスの行が無いことを確認します。
[root@localhost logstarecollector]# ss -natu Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 127.0.0.1:323 *:* udp UNCONN 0 0 *:514 *:* udp UNCONN 0 0 *:161 *:* udp UNCONN 0 0 *:162 *:* udp UNCONN 0 0 ::1:323 :::* udp UNCONN 0 0 :::514 :::* tcp LISTEN 0 128 *:9868 *:* (tcp LISTEN 0 50 *:80 *:*)この行がないことを確認します。 tcp LISTEN 0 128 *:22 *:* tcp LISTEN 0 50 127.0.0.1:17081 *:* tcp LISTEN 0 100 127.0.0.1:25 *:* tcp LISTEN 0 50 *:8443 *:* tcp LISTEN 0 25 *:514 *:* tcp LISTEN 0 128 127.0.0.1:199 *:* tcp ESTAB 0 36 172.23.61.140:22 172.23.58.191:55643 tcp TIME-WAIT 0 0 127.0.0.1:47638 127.0.0.1:514 tcp LISTEN 0 128 :::22 :::* tcp LISTEN 0 100 ::1:25 :::* tcp LISTEN 0 25 :::514 :::* tcp LISTEN 0 50 :::2181 :::*
LSCが停止していることを確認するには、コンソールを起動して以下のコマンドを実行します。
[root@localhost local]# ps -ef |grep java
以下の図のようになっていれば、LSCは停止しています。
LogStare Collector を起動
{ LSCインストールパス}へ移動します。
[root@localhost ~]# cd {LSCインストールパス} [root@localhost local]#
「./logstarecollector/sbin/start_kallista.sh」を実行します。
[root@localhost local]# ./logstarecollector/sbin/stop_kallista.sh ssl-enable [root@localhost sbin]# initializing logtable. wait please! logtablecompleted. 6(ms) Cache initializing start. wait please! Cache completed. 30911(ms) Started @19795ms
ブラウザで管理画面へアクセス
ブラウザで「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
※再起動には時間がかかることがあります。再起動してしばらくしてからブラウザでアクセスしてください。
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。