對於雲端索引搜尋伺服器 (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. 如果 trust store 與 key store 的格式為 PKCS12,請透過為 SOLR_SSL_KEY_STORESOLR_SSL_TRUST_STORE 設定 p12 檔案的路徑來使用 p12 檔案
4. 如果 trust store 與 key store 的格式為 JKS,則請透過為 SOLR_SSL_KEY_STORESOLR_SSL_TRUST_STORE 設定 jks 檔案的路徑來使用 jks 檔案,並將 SOLR_SSL_KEY_STORE_TYPESOLR_SSL_TRUST_STORE_TYPE 設定為 JKS
* 
從 Solr 9.0.0 開始,如果使用 SSL 配置 Windchill,則也應使用 SSL 配置 Solr。
對於 Solr 配置 SSL
對於執行 Solr 伺服器的所有節點配置 Windchill Index Search 伺服器。對於所有節點使用相同的憑證與金鑰檔案。
1. 將憑證 (jks 或 pkcs12) 檔案複製到 <Index_Search_Home>/solr/server/etc
當在叢集設定中部署多個 Solr 伺服器時,請務必在執行 Solr 的每個節點中匯入所有 Solr 伺服器的 keystore 檔案,如下列範例所述:
Solr 伺服器
電腦
要匯入的 Keystore 檔案
範例匯入指令
SolrServerA
Node1
匯入 SolrServerB 與 SolrServerC 的 keystore 檔案。
keytool -importkeystore -srckeystore SolrServerB.jks -destkeystore SolrServerA.jks -srcstoretype JKS -deststoretype JKS
keytool -importkeystore -srckeystore SolrServerC.jks -destkeystore SolrServerA.jks -srcstoretype JKS -deststoretype JKS
SolrServerB
Node2
匯入 SolrServerA 與 SolrServerC 的 keystore 檔案。
keytool -importkeystore -srckeystore SolrServerA.jks -destkeystore SolrServerB.jks -srcstoretype JKS -deststoretype JKS
keytool -importkeystore -srckeystore SolrServerC.jks -destkeystore SolrServerB.jks -srcstoretype JKS -deststoretype JKS
SolrServerC
Node3
匯入 SolrServerA 與 SolrServerB 的 keystore 檔案。
keytool -importkeystore -srckeystore SolrServerA.jks -destkeystore SolrServerC.jks -srcstoretype JKS -deststoretype JKS
keytool -importkeystore -srckeystore SolrServerB.jks -destkeystore SolrServerC.jks -srcstoretype JKS -deststoretype JKS
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=<password>)
set SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks
set SOLR_SSL_TRUST_STORE_PASSWORD=<password>
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=<password>
SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks
SOLR_SSL_TRUST_STORE_PASSWORD=<password>
# Require clients to authenticate
SOLR_SSL_NEED_CLIENT_AUTH=false
# Enable clients to authenticate (but not require)
SOLR_SSL_WANT_CLIENT_AUTH=false
其中,<password> 是建立憑證時指定的密碼。
3. 開啟 Windchill Shell 並執行下列指令,設定通訊協定為索引搜尋用戶端連接至索引搜尋伺服器時將使用的 HTTPS:
xconfmanager -s wt.index.solrProtocol=https -t codebase/wt.properties -p
4. Windchill 配置為使用 SSL 時,在 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
5. 重新啟動 Windchill
對於 Zookeeper 配置 SSL
1. urlScheme 全叢集內容需要設定為 https,任何 Solr 節點才會啟動。
開啟指令提示並導覽至 <INDEX_SEARCH_HOME>/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
* 
只要 Zookeeper 節點重新啟動,便應執行 urlScheme 指令。
2. 重新啟動 Solr 雲端 (Zookeeper 節點和 Solr 節點),然後導覽至 Solr 管理介面來核對 Solr 已執行 SSL。
* 
依預設,Solr 不包含密碼套件的任何組態,且其會使用 Jetty 提供的預設密碼套件。如需詳細資訊,請參閱適用的 Jetty : The Definitive Reference (eclipse.dev)。建議參考您的內部安全性需求與安全性原則,以取得使用安全密碼套件的指南。
這是否有幫助?