Назад | Перейти на главную страницу

MS SQL Server, настроенный для безопасного (SSL) соединения, позволяет незащищенное соединение от клиента JDBC

Мне нужно подключиться к MS SQL Server 2008 r2, используя безопасную связь. Я смог сделать то же самое, используя следующую строку подключения:

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>>

На сервере БД я использовал Configuration Manager, чтобы указать используемый сертификат и включить «Принудительное шифрование». Диспетчер конфигурации SQL Server -> Сетевая конфигурация SQL Server -> Протоколы для <> - Щелкните правой кнопкой мыши -> Свойства -> Принудительное шифрование и сертификат

однако я могу подключиться к той же БД без указания encrypt = true, то есть со следующим URL:

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

Меня беспокоит то, что, когда SQL Server настроен для безопасного соединения, он не должен отклонять / игнорировать незашифрованное соединение. Или мне нужно выполнить дополнительную настройку, чтобы сервер БД принимал только безопасные соединения

Спасибо и привет P Manchanda

Нет. Согласно документации, соединение будет зашифрованным.

Проверьте http://social.msdn.microsoft.com/Forums/sqlserver/en-US/bde679d9-ff83-4fa7-b402-42e336a97106/force-encryption-on-sql-server-not-working

Если для параметра «Принудительное шифрование» для компонента Database Engine установлено значение «ДА», все обмены данными между клиентом и сервером шифруются независимо от того, отмечен ли параметр «Шифрование соединения» (например, из SSMS) или нет. Вы можете проверить это с помощью следующего заявления DMV.

Все очень просто - настройка строки подключения игнорируется.

Это можно проверить на сервере через:

USE master
GO
SELECT encrypt_option FROM sys.dm_exec_connections
GO