クラウドのインデックスサーチサーバー (Solr) の SSL の設定
開始する前に、証明書とキーが単一のファイルとして PEM フォーマットに変換されている必要があります。
|
証明書のみのファイルが使用できない場合、必要に応じて証明書とキーのファイルから生成できます。
1. keytool ユーティリティを使用して、JKS キーストアを PKCS12 フォーマットに変換します。
keytool -importkeystore -srckeystore solr-ssl.keystore.jks -destkeystore solr-ssl.keystore.p12 -srcstoretype jks -deststoretype pkcs12
2. openssl コマンドを使用して、認証書のみが含まれ、キーは含まれていない PKCS12 フォーマットのキーストアを PEM フォーマットに変換します。
openssl pkcs12 -nokeys -in solr-ssl.keystore.p12 -out solr-ssl.cacert.pem
3. トラストストアとキーストアが PKCS12 フォーマットである場合、SOLR_SSL_KEY_STORE および SOLR_SSL_TRUST_STORE に p12 ファイルのパスを設定することで p12 ファイルを使用します。
4. トラストストアとキーストアが JKS フォーマットである場合、SOLR_SSL_KEY_STORE および SOLR_SSL_TRUST_STORE に jks ファイルのパスを設定し、さらに SOLR_SSL_KEY_STORE_TYPE および SOLR_SSL_TRUST_STORE_TYPE を JKS として設定することで jks ファイルを使用します。
|
Solr の SSL の設定
Solr を実行しているすべてのノードの Windchill Index Search サーバーを設定します。同じ証明書とキーのファイルをすべてのノードに使用します。
1. 証明書 (JKS) ファイルを <インデックスサーチホーム>/solr/server/etc にコピーします。
2. 共通の SSL 関連のシステムプロパティを設定します。
SSL 設定をアクティブ化するには、次のファイルの SOLR_SSL_* で始まるプロパティをコメント解除し、更新します。
◦ Windows: bin\solr.in.cmd
例:
set SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks
set SOLR_SSL_KEY_STORE_PASSWORD=secret)
set SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks
set SOLR_SSL_TRUST_STORE_PASSWORD=secret
REM Require clients to authenticate
set SOLR_SSL_NEED_CLIENT_AUTH=false
REM Enable clients to authenticate (but not require)
set SOLR_SSL_WANT_CLIENT_AUTH=false
◦ Unix: bin/solr.in.sh
例:
bin/solr.in.sh example SOLR_SSL_* configuration
SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks
SOLR_SSL_KEY_STORE_PASSWORD=secret
SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks
SOLR_SSL_TRUST_STORE_PASSWORD=secret
# Require clients to authenticate
SOLR_SSL_NEED_CLIENT_AUTH=false
# Enable clients to authenticate (but not require)
SOLR_SSL_WANT_CLIENT_AUTH=false
ここで、"secret" は証明書の作成時に指定されたパスワードです。
3. Windchill シェルを開き、次のコマンドを実行して、インデックスサーチクライアントがインデックスサーチサーバーに接続するときに使用するプロトコルを HTTPS に設定します。
xconfmanager -s wt.index.solrProtocol=https -t codebase/wt.properties -p
4. SSL を使用するように Windchill が設定されている場合、Windchill の外部で使用されている Java クライアントが接続するには証明書が必要です。
このため、Solr クラウドで Solr ノードによって使用されている JVM に証明書をインポートする必要があります。これにより、Solr ノードは Windchill に接続し、インデックシング用のドキュメントをダウンロードできます。
証明書ファイルを JVM トラストストア (Solr ノードの JDK/JVM) に追加します。
a. Solr ノードが使用する Java の場所に移動し、<JAVA_HOME>/lib/security で cacerts ファイルのパスを確認します。
b. <JAVA_HOME>/bin に移動し、新しい証明書をインポートします。cacerts に書き込むためのアクセス許可を持つユーザーとして keytool ユーティリティを実行します。
keytool -import -file <証明書ファイル> -alias <一意の名前> -keystore <cacerts ファイルへのパス>
次に例を示します。
keytool -import -file D:\SolrWithSSL\solr-5.4.1\server\etc\solr-ssl.cacert.pem -alias Key_Alias -keystore ../lib/security/cacerts
|
JVM キーストアのデフォルトのパスワードは "changeit" です。
|
5. Windchill を再起動します。
ZooKeeper の SSL の設定
1. クラスタ全体に適用される urlScheme プロパティは、Solr ノードがまだ 1 つも起動していないときに、https に設定する必要があります。
コマンドプロンプトを開き、<インデックスサーチホーム>/solr/server/scripts/cloud-scripts に移動して、次のコマンドを実行します。
◦ Windows:
zkcli.bat -zkhost <コンマで区切られた ZooKeeper ホスト名:ポートエントリのリスト> -cmd clusterprop -name urlScheme -val https
例:
zkcli.bat -zkhost host1.ptcnet.ptc.com:2181,host2.ptcnet.ptc.com:2182,host3.ptcnet.ptc.com:2183 -cmd clusterprop -name urlScheme -val https
◦ Unix:
sh zkcli.sh -zkhost <コンマで区切られた ZooKeeper ホスト名:ポートエントリのリスト> -cmd clusterprop -name urlScheme -val https
例:
sh zkcli.sh -zkhost host1.ptcnet.ptc.com:2181,host2.ptcnet.ptc.com:2182,host3.ptcnet.ptc.com:2183 -cmd clusterprop -name urlScheme -val https
|
urlScheme コマンドは、ZooKeeper ノードが再起動されるたびに実行される必要があります。
|
2. Solr クラウド (ZooKeeper ノードと Solr ノード) を再起動し、Solr 管理インタフェースに移動して、Solr が SSL とともに実行されていることを確認します。
|
SSL の既知の問題については、次のサイトを参照してください。
|