インストールおよびアップグレード > 高度な展開の検討事項 > 高度なデータベース設定 > JDBC over SSL を使用するための Windchill の設定 > JDBC over SSL を使用して SQL Server データベースに接続するための Windchill の設定
  
JDBC over SSL を使用して SQL Server データベースに接続するための Windchill の設定
* 
注意: このトピックでは、Windchill サーバーホストを "クライアント" と呼び、SQL Server が動作している SQL Server データベースホストを "サーバー" と呼んでいます。データベースとの関係においては、Windchill サーバーはデータベースサーバーのクライアントとして機能します。
SQL Server 用 Microsoft JDBC ドライバーを使用して Microsoft SQL Server 2016 がそのクライアント (Windchill サーバー) と暗号化された通信を行うよう設定するときの大まかなステップは以下のとおりです。
1. IIS Manager を使用して自己署名証明書を作成する
2. SQL Server 構成マネージャを使用して SQL Server 2016 を設定する
3. 証明書をエクスポートする
4. 証明書を Windchill サーバーにインポートする
5. JDBC over SSL を使用するよう Windchill を設定する
以降の各セクションでは、これらの各ステップの手順について説明します。
この機能は Windchill リリース 11.1 F000 以降でサポートされます。Microsoft SQL Server 2016 での SSL のサポートの詳細については、https://docs.microsoft.com/en-us/sql/connect/jdbc/understanding-ssl-support を参照してください。
自己署名証明書の作成
IIS Manager を使用して自己署名証明書を作成するには、以下のステップを実行します。この証明書は暗号化のための SSL 証明書として使用できます。
1. IIS Manager を開きます。
2. 「Connections」ビューで、インスタンス名をクリックします。この例では、インスタンス名は CAPRICORN です。
3. 機能ビューで、「Server Certificates」をダブルクリックします。
4. 「Actions」表示枠で、「Create Self-Signed Certificate」をクリックします。
5. 「Create Self-Signed Certificate」ページで、「Specify a friendly name for the certificate」ボックスに証明書の名前を入力し、「OK」をクリックします。
新規の自己署名証明書が「Server Certificates」ビューに表示されます。
SQL Server 構成マネージャを使用した SQL Server 2016 の設定
以下のステップを実行することで、SQL Server 2016 を設定します。
1. SQL Server 構成マネージャを開きます。このユーティリティは SQL Server 2016 とともにインストールされています。
2. SQL Server Network Configuration に移動し、「Protocols for <インスタンス名>をクリックします。TCP/IP が有効になっていることを確認します。
3. 「Protocols for <インスタンス名>」を右クリックし、「Properties」をクリックします。
4. 「Flags」タブで、「Force Encryption」の値を「Yes」に設定します。
SQL Server インスタンスが SSL 暗号化を強制するよう設定されている場合、Java 仮想マシン上で実行する際には、ドライバーによって SSL 暗号化が自動的に有効になります。そうでない場合、接続は終了し、ドライバーでエラーが生成されます。SQL Server 上にはトラフィックを処理するポートが常に 1 つだけ存在します。
5. 「Certificate」タブで、必要な証明書をドロップダウンリストから選択し、「OK」をクリックします。
6. SQL Server サービスを再起動します。
証明書が適切に読み込まれたことを確認するため、動作している SQL Server インスタンスのログディレクトリにある ERRORLOG ファイルを確認します。
ログディレクトリを見つけるには、以下のステップを実行します。
1. SQL Server 2016 が動作しているホストで SQL Server 構成マネージャを起動します。
2. 「SQL Server Services」をクリックします。
3. 右側の表示枠で、「SQL Server <インスタンス名>を右クリックして「Properties」を選択します。
4. 「SQL Server Properties」ダイアログボックスの「Advanced」タブで、「Startup Parameters」の値として ERRORLOG ファイルのパスが表示されていることを確認します。
SQL Server システムでの自己署名証明書のエクスポート
以下のステップを実行することで証明書をエクスポートします。
1. 「スタート」メニューで、「ファイル名を指定して実行」をクリックします。
2. 「名前」ボックスで、「MMC」と入力し、「OK」をクリックします。
3. MMC コンソールの「ファイル」メニューで、「スナップインの追加と削除」をクリックします。
4. 「スナップインの追加と削除」ダイアログボックスで、「追加」をクリックします。
5. 「スタンドアロンスナップインの追加」ダイアログボックスで、「証明書」をクリックし、「追加」をクリックします。
6. 「証明書スナップイン」ダイアログボックスで、「コンピュータアカウント」をクリックし、「完了」をクリックします。
7. 「スタンドアロンスナップインの追加」ダイアログボックスで、「閉じる」をクリックします。
8. 「スナップインの追加と削除」ダイアログボックスで、「OK」をクリックします。
9. 左側表示枠にある「証明書」スナップインで、「個人」 > 「証明書」に移動します。IIS を使用して作成された証明書が表示されます。
10. 証明書を右クリックし、「すべてのタスク」 > 「エクスポート」に移動し、秘密キーなしでこの証明書をエクスポートし、「次へ」をクリックします。
11. 適切なフォーマットタイプを選択し、「次へ」をクリックします。
12. 証明書のエクスポート先となるファイルの名前を指定し、「次へ」をクリックします。
13. 設定を確認し、「完了」をクリックします。「正しくエクスポートされました」ダイアログボックスが表示されます。
データベースクライアント (Windchill サーバー) への自己署名証明書のインポート
以下のステップを実行することで、Java の keytool ユーティリティを使用して、自己署名証明書を Java キーストアにインポートします。
1. クライアントマシン上のエクスポートされたファイルにブラウズし、これをローカルディスクに保存します。この場所に対する読み取りアクセス許可があることを確認します。
2. クライアントマシンで、コマンドプロンプトを開き、{wt.jdk}/jre/lib/security に移動します。wt.jdk の値は WT_HOME/codebase にある wt.properties ファイルで見つけることができます。
3. 以下のコマンドを実行してソースキーストアをインポートします。keytool -importcert -file d:\Users\jsmith\Documents\02PTC\Certs\SelfSignedCertFromIISForDemo.pfx.cer -keystore cacerts -alias "SELF-SIGNED-IIS-DEMO-CERT"
ここで、
SelfSignedCertFromIISForDemo.pfx.cer: SQL Server からエクスポートされた証明書ファイルを指定します。
cacerts: {wt.jdk}/jre/lib/security にあるデフォルトキーストアのファイルパスを指定します。
alias: エイリアスを指定します。これはオプションです。エイリアスは、証明書をキーストアから削除する際に必要になります。
これらの手順が完了すると、クライアントマシンのキーストアにはサーバーからエクスポートされた証明書が保存されます。
JDBC over SSL を使用するための Windchill の設定
SQL Server との間で JDBC over SSL を使用するよう Windchill サーバーを設定するため、以下のステップを実行します。
1. WT_HOME/db にある db.properties ファイルを開きます。
2. プロパティを以下のように設定します。
wt.pom.dbConnectionPropertiesNameList=encrypt,javax.net.ssl.trustStore,
wt.pom.dbConnectionPropertiesValueList=true,{wt.jdk}/jre/lib/security \\cacerts
3. Windchill を再起動します。
この設定によって、JDBC over SSL を使用した Windchill と SQL Server データベース間の通信が可能になります。
クライアント接続の設定の詳細については、Microsoft から提供されている以下のドキュメントを参照してください。
https://docs.microsoft.com/en-us/sql/connect/jdbc/configuring-the-client-for-ssl-encryption
https://support.microsoft.com/en-us/help/316898/how-to-enable-ssl-encryption-for-an-instance-of-sql-server-by-using-mi
https://docs.microsoft.com/en-us/sql/connect/jdbc/connecting-with-ssl-encryption