セキュア通信のための SSL の使用
|
このトピックは Windchill 認証が設定されたシステムに適用されます。
|
概要
ThingWorx サーバーと Windchill アプリケーションの間の通信を保護するために、サイトで双方向 SSL を使用できます。本番環境で作業する際には SSL を使用することを PTC は推奨しています。拡張機能は、SSL を使用してサーバーを相互に認証するとともに、通信自体を保護することもできます。
SSL 接続は、両方のシステム相互間の信頼関係を必要とします。このためには、トランザクション用のキーを提供する ThingWorx サーバーの Java キーストアおよびトラストストアファイルを参照するように、SwaggerConnector と ptc-windchill-Odata-connector を設定しなければなりません。これらのキーを信頼するように Windchill サーバー上の HTTP サーバーを設定する必要があります。
SSL コンフィギュレーションは環境によって大きく異なり、このトピックでは SSL コンフィギュレーションで使用できるすべてのオプションについては説明しません。代わりに、次の手順で SSL を設定するプロセスの概要を説明します。
この手順では、ThingWorx と Windchill の両方が標準の通信に SSL を使用するように設定されていることが前提です。また、PTC HTTP サーバーの最新バージョンに付属するコンフィギュレーションスクリプトを使用します。最新の PTC HTTP サーバーは、Windchill 11.0 M030 以降に付属しています。
|
• Windchill には商用のトラステッドワイルドカード証明書を使用できます。
• ThingWorx と Windchill の間では自己署名証明書または商用のトラステッドワイルドカード証明書を使用できます。
|
KeyStore と TrustStore を使用した ThingWorx の設定
ThingWorx は、Java キーストアとトラストストアを必要とします。これらのファイルの作成方法については、
ThingWorx Navigate の KeyStore および TrustStore ファイルの作成のトピックを参照してください。
1. ThingWorx 用の TrustStore を作成し、Windchill SSL 認証をインポートします。
2. ThingWorx 用の KeyStore を作成し、KeyStore に KeyPair を生成します。
3. ThingWorx を信頼するように Windchill を設定します。
4. 保護する Windchill システムに ThingWorx を接続するために使用する、WindchillConnector Thing Template のコンフィギュレーション内でこれらのストアを参照します。
クライアント認証用の Windchill の設定
Windchill サーバー上で、ThingWorx キーと証明書を信頼するように PTC HTTP サーバーで SSL 認証を設定します。
|
コード例はページに収まるように整形されており、行番号、隠し編集文字 (タブや行末文字など)、および余分なスペースが含まれる場合があります。コードを切り取って貼り付ける場合は、アプリケーション内で例を使用する前に、これらの文字を確認して除去してください。
|
1. CA 証明書ファイルを参照するように PTC HTTP サーバーの設定を更新します。
a. <HTTP サーバーホーム>\conf\ca-bundle.crt 内にファイルを作成します。この場所が推奨されますが、必須ではありません。
b. ca-bundle.crt を保存します。
c. <HTTP サーバーホーム>\conf\sslvhostconf.d に sslclientauth.conf ファイルを作成します。
d. SSLCACertificateFile を <上位のパス>\ca-bundle.crt に追加して、ca-bundle.crt ファイルを参照するようにします。以下に例を示します。
SSLCACertificateFile
<HTTP_Server>\conf\ca-bundle.crt
e. 変更を保存します。
2. PTC HTTP サーバーのトラステッド CA 証明書のリストに ThingWorx クライアント証明書を追加します。
a. SSLCACertificateFile エントリ内で以前指定した ca-bundle.crt ファイルを編集します。
|
ファイルがまだ存在しない場合は、ファイルと必要なディレクトリを作成します。
|
b. ca-bundle.crt を編集し、ThingWorx クライアント証明書の PEM ファイルのコンテンツを貼り付けます。
c. 変更を保存します。
3. sslClientAuth URL を指すように PTC HTTP サーバーを設定します。
a. <Windchill_ホーム>/codebase/wt.properties 内のエントリ wt.webapp.name で、Windchill Web アプリケーション名を見つけます。
b. シェルまたはコマンドプロンプトを開き、以下を入力します。
cd <HTTPSERVER_HOME>ant -f webAppConfig.xml -DappName=[windchill-web-app] -Dresource=sslClientAuth -DresourceAuthType=sslClientAuth addAuthResource
c. ThingWorx 証明書を信頼するように Windchill を設定します。
i. <Windchill_ホーム>/codebase/WEB-INF/web.xml を編集します。
ii. <filter-name>TrustedSSLAuthFilter</filtername> を見つけます。
iii. 追加の <元のパラメータ> 要素を既存のものの後に追加します。ここで、[cert-name] は使用する証明書の名前です。
参照用に以下の例を使用できます。
例 1
|
例 2
|
<init-param> <param-name>trustedSubjectPattern.1</param-name> <param-value>[cert-name]</param-value> </init-param>
上記の例では、[cert-name] を、使用する証明書の「件名」にある証明書名に置き換えます。たとえば、使用する証明書の「件名」が CN=navigate.domain.com である場合は、[cert-name] を navigate.domain.com に置き換えます。
|
<init-param> <param-name>trustedSubjectPattern.1</param-name> <param-value>.*[cert-name].*</param-value> </init-param>
上記の例では、[cert-name] を、使用する証明書の「件名」にある証明書名に置き換えます。たとえば、使用する証明書の「件名」が CN=navigate.domain.com である場合は、[cert-name] を navigate に置き換えます。
|
d. 変更を保存します。
e. Windchill と PTC HTTP サーバーを再起動します。