■想定される原因
ご報告いただいたエラーは、SSL/TLS 通信のサーバーが要求している証明書が、SSL/TLS 通信のクライアントの証明書ストアにインポートされていない場合に発生します。
■仕様説明
SSL/TLS 通信を使用してメッセージ送信中間イベントを実行する場合、DataSpider BPM がクライアントとして動作する場合に使用している証明書ストアに、接続先のサーバーに対応する証明書をインポートしておく必要があります。
DataSpider BPM が SSL/TLS 通信のクライアントとして使用する証明書ストアは以下のディレクトリに保存されています。
$JRE_HOME\lib\security\cacerts
■対処方法
接続先のサーバーに対応する証明書を DataSpider BPM がクライアントとして動作する場合に使用している証明書ストアにインポートしてください。
キーストアや証明書ストアに証明書をインポートする方法の一例については、DataSpider BPM 2.2 のインストールガイドをご参照ください。
※ DataSpider BPM 2.1 より前のバージョンの場合も、インストールする方法の例は、2.2 と変わりません。このため、2.2 のインストールガイドをご参照ください。
既にインポートしている証明書の情報の確認や、エラーの発生状況の詳細については、「■確認方法」をご参照ください。
■補足
メッセージ送信中間イベントの接続先が DataSpider BPM の場合は、DataSpider BPM が SSL/TLS 通信のサーバーとして使用するキーストアにインポートされているサーバー証明書と対応するルート証明書を、証明書ストアにインポートしておく必要があります。
DataSpider BPM が SSL/TLS 通信のサーバーとして使用するキーストアは以下のディレクトリに保存されています。
$DSBPM_HOME\apache-tomcat\conf\.keystore
■確認方法
(1) DataSpider BPM が参照する証明書ストアにインポートしている証明書の確認
JRE に含まれるツール(keytool)を使用することで、DataSpider BPM が使用している JRE が参照している証明書ストア(cacerts)にインポートしている証明書の一覧や詳細な情報を確認することができます。
詳細は FAQ No. 28096 をご参照ください。
(2) エラー発生時の通信内容の詳細
DataSpider BPM が SSL/TLS 通信に使用している tomcat の設定を変更することで、SSL/TLS 通信の詳細情報を取得することができます。
詳細は FAQ No. 28097 をご参照ください。
なお、ログを検索し、以下のように、BPM のログと同様の例外に合わせて、「certificate_unknown」のエラーが発生している場合、キーストアまたは証明書ストアにインポートしている証明書の組み合わせが適切ではありません。インポートしている証明書を確認してください。
scheduler_Worker-2, handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
http-bio-18443-exec-7, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
http-bio-18443-exec-7, IOException in getSession(): javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
■調査に必要な情報
接続先のサーバーに対応する証明書を DataSpider BPM がクライアントとして動作する場合に使用している証明書ストアにインポートしていてもエラーが解消されない場合には、以下の情報をご用意いただき、サポートセンターまでお問い合わせをお願いいたします。
- サーバー側、クライアント側の設定手順
事象の再現確認のために、DataSpider BPM のサーバー側のキーストア、クライアント側の証明書ストアに対して、証明書をインポートした際の手順について教えてください。
- SSL 認証のデバッグログ
(2) エラー発生時の通信内容の詳細 の設定を使用して SSL 認証のデバッグログ出力を有効にして、出力したログファイルをご提供ください。
参考情報
SSL/TLS 通信のエラーが、DataSpider BPMによるものか、サーバー側のキーストアと、クライアント(JRE)側の証明書ストアにインポートしている証明書の組み合わせによるものかはtomcat や JRE を使用した他のツールで通信をすることで確認することができます。
一例として以下のようなツールがあります。
※ツールの詳細な設定方法に関しては、ツールのサイトをご確認ください
ツール: IBM Connection and Configuration Verification Tool for SSL/TLS
上記のようなツールで、DataSpider BPM が使用しているキーストアをサーバー側で、証明書ストアをクライアント側で使用して通信してエラーが発生した場合は、エラーは DataSpider BPM によるものではなく、証明書の組み合わせが適切でないために発生していることが確認できます。