次の方法で共有


setEncrypt メソッド (SQLServerDataSource)

encrypt プロパティが有効であるかどうかを示す boolean 値を設定します。

構文

public void setEncypt(boolean encrypt)

パラメーター

encrypt

クライアントと SQL Server の間で SSL (Secure Sockets Layer) 暗号化が有効な場合は、true です。それ以外の場合は false です。

解説

encrypt プロパティが true に設定されている場合、サーバーに証明書がインストールされていれば、Microsoft SQL Server JDBC Driver によって、SQL Server では SSL 暗号化が必ず使用されます。暗号化の対象となるのは、サーバーとクライアントの間で送信されるすべてのデータです。既定値は false です。

JDBC ドライバーは、SSL ハンドシェイクの確立を試みる際に、使用中の Java 仮想マシン (JVM) を検出します。

encrypt プロパティが true に設定されている場合、Microsoft SQL Server JDBC Driver は、JVM の既定の JSSE セキュリティ プロバイダーを使用して、SQL Server と SSL 暗号化をネゴシエートします。既定のセキュリティ プロバイダーでは、SSL 暗号化の正常なネゴシエートに必要なすべての機能がサポートされているとは限りません。たとえば、既定のセキュリティ プロバイダーでは、SQL Server の SSL 証明書で使用されている RSA 公開キーのサイズがサポートされていない場合があります。この場合、既定のセキュリティ プロバイダーでエラーが発生し、その結果 JDBC ドライバーが接続を終了する可能性があります。この問題を解決するには、次のいずれかを実行します。

  • サイズの小さい RSA 公開キーを持つサーバー証明書を使用して、SQL Server を構成します。
  • <java-home>/lib/security/java.security セキュリティ プロパティ ファイルで、別の JSSE セキュリティ プロバイダーを使用するように JVM を構成します。
  • 別の JVM を使用します。

encrypt プロパティが指定されていないか false に設定されている場合、ドライバーは SQL Server に SSL 暗号化のサポートを強制しません。SQL Server インスタンスが SSL 暗号化を強制的に使用するように構成されていない場合、接続は暗号化なしで確立されます。SQL Server インスタンスが SSL 暗号化を強制的に使用するように構成されている場合、Microsoft SQL Server JDBC Driver は、使用中の JVM が適切に構成されていれば自動的に SSL 暗号化を有効にし、そうでなければ接続を終了してエラーを生成します。

参照

リファレンス

SQLServerDataSource クラス

概念

SQLServerDataSource のメンバー