14.8.13 SOAPクライアントからSSLを使用してSOAPサービスに接続するにはどのようにすればよいですか?
SSLを使用するためには,暗号化に使用する鍵を格納するキーストアや証明書を格納するトラストストアを用意し,それらの情報をSOAPクライアント実行時に設定する必要があります。また,SSL認証の種類によって必要となるストア情報が異なります。次にSSL認証の種類と,それに必要なストア情報の関係を示します。
認証の種類 ※1 |
キーストア情報 ※2 |
トラストストア情報 ※2 |
||
---|---|---|---|---|
キーストア |
キーストア パスワード |
トラストストア |
トラストストア パスワード |
|
サーバ認証 |
− |
− |
○ |
○ |
クライアント認証 |
○ |
○ |
○ ※3 |
○ ※3 |
相互認証 |
○ |
○ |
○ |
○ |
- (凡例)
-
○:設定します。
−:設定しません。
- 注※1
-
認証の種類によって,それぞれ次のような準備が必要です。
- サーバ認証
-
サーバ認証をするためには,サーバ証明書を発行した機関のルート証明書をあらかじめトラストストアに格納しておく必要があります。
- クライアント認証
-
クライアント認証をするためには,クライアント証明書をあらかじめキーストアに格納しておく必要があります。中間証明書が存在する場合は,トラストストアに格納しておきます。
- 相互認証
-
サーバ認証およびクライアント認証の両方の準備をする必要があります。
- 注※2
-
キーストア情報およびトラストストア情報は,次の各プロパティに設定します。
-
キーストア:javax.net.ssl. keyStore
-
キーストアパスワード:javax.net.ssl. keyStorePassword
-
トラストストア:javax.net.ssl.trustStore
-
トラストストアパスワード:javax.net.ssl.trustStorePassword
-
- 注※3
-
中間証明書が存在する場合は設定する必要があります。
Application Serverを使用する場合は,usrconf.propertiesに必要なプロパティを設定します。usrconf.propertiesについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。
次に使用例を示します。
- (例)サーバ認証をする場合
-
usrconf.propertiesファイルに次のプロパティを設定します。
-
javax.net.ssl.trustStore=<トラストストアの絶対パス>
-
javax.net.ssl.trustStorePassword=<トラストストアパスワード>
-
- (例)相互認証をする場合
-
usrconf.propertiesファイルに次のプロパティを設定します。
-
javax.net.ssl.keyStore=<キーストアの絶対パス>
-
javax.net.ssl.keyStorePassword=<キーストアパスワード>
-
javax.net.ssl.trustStore=<トラストストアの絶対パス>
-
javax.net.ssl.trustStorePassword=<トラストストアパスワード>
-
- 注意事項
-
-
usrconf.properties中にストアのパスワードを設定する場合,usrconf.propertiesの読み取り権限を限定するなど,第三者にパスワードを読み取られないように注意してください。コマンドラインを使用する場合も,同様に注意してください。
-
SSLの接続に対して使用可能なプロトコルは,JDKのバージョンに依存します。使用可能なプロトコルについては,JDKのドキュメントを参照してください。また,JDKのhttps.protocolsプロパティによる使用可能なプロトコルの変更はできませんので注意してください。
-
SOAPクライアントから,SSLプロトコルに対応したSOAPサーバに接続する場合,エンドポイントアドレスに含まれるホスト名と,証明書のホスト名が一致しているかどうかを検証します。ホスト名が一致していない場合,KDCCP0012-EメッセージのC4Faultが発生します。
ホスト名の検証を無効にしたい場合は,サーバ定義ファイルまたはクライアント定義ファイルの次のプロパティにfalseを設定してください。
サーバ定義ファイル
c4web.application.<識別子>.hostname_verification.enable
クライアント定義ファイル
c4web.application.hostname_verification.enable
サーバ定義ファイルについては,「10.2 サーバ定義ファイルの設定」を参照してください。クライアント定義ファイルについては,「10.3 クライアント定義ファイルの設定」を参照してください。
-