web-dev-qa-db-ja.com

セキュア(SSL)接続用に構成されたMS SQL Serverは、JDBCクライアントからの非セキュア接続を許可します

安全な通信を使用してMSSQL Server 2008r2に接続する必要があります。次の接続文字列を使用して同じことを行うことができました。

jdbc:sqlserver://<<db server name>>:1433;databaseName=<<db name>>;selectMethod=cursor;encrypt=true;trustServerCertificate=false;integratedSecurity=false;trustStore=<<path to my trust store>>;trustStorePassword=<<password>>

DBサーバーで、構成マネージャーを使用して使用する証明書を指定し、「強制暗号化」を有効にしました。SQLServer構成マネージャー-> SQLServerネットワーク構成->プロトコル<>-右クリック->プロパティ->暗号化と証明書の強制

ただし、次のURLの「encrypt = true」を指定しなくても、同じDBに接続できます。

jdbc:sqlserver://<<db server name>>:1433;databaseName=<<db name>>;selectMethod=cursor;

私の混乱は、SQL Serverが安全な接続用に構成されている場合、暗号化されていない接続を拒否/無視すべきではないということです。または、DBサーバーが安全な接続のみを受け入れるように、追加の構成を行う必要がありますか?

よろしくPマンチャンダ

3
Manchanda. P

いいえ。ドキュメントによると、暗号化された接続があります。

チェック http://social.msdn.Microsoft.com/Forums/sqlserver/en-US/bde679d9-ff83-4fa7-b402-42e336a97106/force-encryption-on-sql-server-not-working ==

データベースエンジンの[暗号化の強制]オプションが[はい]に設定されている場合、[接続の暗号化]オプション(SSMSなど)がオンになっているかどうかに関係なく、クライアントとサーバー間のすべての通信が暗号化されます。次のDMVステートメントを使用して確認できます。

そのように単純です-接続文字列の設定は無視されます。

これは、サーバーで次の方法で確認できます。

USE master
GO
SELECT encrypt_option FROM sys.dm_exec_connections
GO
4
TomTom