SQLServerを使用した際、SSLに関する例外メッセージが出力する

フォローする

概要

デフォルトのデータベーステンプレートでSQLServerを利用する際、
利用するJDBCドライバのバージョンによっては以下のようなエラーがSQLServerから返却される事があります。

エラーメッセージ

org.eclipse.persistence.exceptions.DatabaseExceptionInternal Exception:
com.microsoft.sqlserver.jdbc.SQLServerException:
ドライバーがSSL(Secure Sockets Layer)暗号化による SQLServer への安全な接続を確立できませんでした。
エラー:"PKIX path building failed:sun.security.provider.certpath,SunCertPathBuilderException:
unable to faind valid certfication path to requested target"

対処方法

これはMicrosoft JDBC Driver for SQL Server(以下JDBCドライバ)の仕様変更に起因するものと考えられます。
同JDBCドライバ10.2以降は破壊的変更として暗号化に関する設定が規定で有効となるよう変更されました。

対処としては次の3つのどれかが想定されます。
・暗号化設定が有効になる前のJDBCドライバ9.4を利用する

・SQLServer側で必要な暗号化に関する設定を実施する
・JDBCドライバの暗号化に関する設定を無効化する

注意事項

SQLServerや同DBで利用するJDBCドライバの設定に関しては、Microsoft社にもご相談ください。

データベーステンプレートはあくまで参考例であるため、

ご利用のDBの前提次第で上記のように追加の設定が必要になる事があります。

参考

外部参考URL:
Microsoft JDBC Driver for SQL Serverのリリース ノート
Microsoft SQL Server 用 JDBC Driver のサポート表

区分 確認Ver
トラブルシュート 10.7.0.9