使用 SSL 進行安全通訊
|
本主題適用於配置了 Windchill 驗證的系統。
|
簡介
您的網站可以使用雙向 SSL 來保護 ThingWorx 伺服器與 Windchill 應用程式之間的通訊。PTC 建議在生產環境中工作時使用 SSL。延伸功能可以使用 SSL 來讓伺服器彼此之間進行驗證,並保護通訊本身。
SSL 連線需要兩個系統之間彼此信任;為達成此目的,必須將舊的和新的 WindchillConnector 物範本配置為參照保存在 ThingWorx 伺服器 (該伺服器提供用於交易的金鑰) 中的 Java 金鑰與信任存放區。Windchill 伺服器中的 HTTP 伺服器必須配置為信任這些金鑰。
SSL 組態會有明顯不同,本主題不會嘗試描述 SSL 組態中的所有可用選項。相反地,下列步驟提供了 SSL 配置流程概觀,並且在「使用 SSL 進行安全連線的範例組態」中提供了詳細範例。
此程序假設 ThingWorx 與 Windchill 都配置為針對其標準通訊使用 SSL。它也依賴隨附於 PTC HTTP 伺服器最新版本的組態指令集。Windchill 11.0 M030 及更新版本中包含最新的 PTC HTTP 伺服器。
|
商業信任的萬用字元憑證可用於 Windchill,自行簽署的憑證可在 ThingWorx 與 Windchill 之間使用。
|
使用金鑰庫與信任庫配置 ThingWorx
ThingWorx 需要 Java 金鑰存放區與信任存放區。
1. 為 ThingWorx 建立信任庫並匯入 Windchill SSL 憑證。
2. 針對 ThingWorx 建立金鑰庫,並在金鑰庫中產生金鑰對。
3. 將 Windchill 配置為信任 ThingWorx。
4. 在用來將 ThingWorx 連線至要保護的 Windchill 系統之 WindchillConnector 物範本的組態中參考它們。
為用戶端驗證配置 Windchill
在 Windchill 伺服器上,配置 PTC HTTP 伺服器中的 SSL 驗證以信任 ThingWorx 金鑰與憑證。
|
程式碼範例已重新設定格式以符合頁面大小,因此可能包含行號、隱藏的編輯字元 (例如 tab 和行尾字元),以及額外的空格。如果您剪下並貼上程式碼,請檢查這些字元並將其移除再嘗試在您的應用程式中使用範例。
|
1. 更新 PTC HTTP 伺服器組態,以參照 CA 憑證檔案。
a. 在 <HTTPSERVER_HOME>\conf\ca-bundle.crt 中建立檔案。建議使用此位置,但並非必要。
b. 儲存 ca-bundle.crt。
c. 在 <HTTPSERVER_HOME>\conf\sslvhostconf.d 中建立 sslclientauth.conf 檔案。
d. 將 SSLCACertificateFile 新增至 <PATH_TO>\ca-bundle.crt,以使其參照 ca-bundle.crt 檔案.例如:
SSLCACertificateFile
<HTTP_Server>\conf\ca-bundle.crt
e. 儲存變更。
2. 將 ThingWorx 用戶端憑證新增至 PTC HTTP 伺服器的信任 CA 憑證清單。
a. 編輯您之前在 SSLCACertificateFile 項目中指向的 ca-bundle.crt 檔案。
b. 編輯 ca-bundle.crt 並貼上 ThingWorx 用戶端憑證的 PEM 檔案內容。
c. 儲存變更。
3. 針對 sslClientAuth URL 配置 PTC HTTP 伺服器。
a. 在 <windchill-home>/codebase/wt.properties 的 wt.webapp.name 項目中尋找 Windchill web app 名稱。
b. 開啟 shell 或指令提示,然後輸入下列指令︰
cd <HTTPSERVER_HOME>ant -f webAppConfig.xml -DappName=[windchill-web-app] -Dresource=sslClientAuth -DresourceAuthType=sslClientAuth addAuthResource
c. 將 Windchill 配置為信任 ThingWorx 憑證。
a. 編輯 <windchill-home>/codebase/WEB-INF/web.xml。
b. 尋找 <filter-name>TrustedSSLAuthFilter</filtername>。
c. 在現有的 <init-param> 元素之後新增另一個此元素,其中 [thingworx-cert-name] 是 ThingWorx 憑證的名稱:
<init-param><param-name>trustedSubjectPattern.1</param-name><param-value>
[thingworx-cert-name]</param-value></init-param>
d. 儲存變更。