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 Манчанда

1 ответ

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

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

Когда для параметра Force Encryption для компонента Database Engine установлено значение YES, все соединения между клиентом и сервером шифруются независимо от того, включена ли опция "Шифрование соединения" (например, из SSMS) или нет. Вы можете проверить это, используя следующую инструкцию DMV.

Просто так - ваша настройка строки соединения игнорируется.

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

USE master
GO
SELECT encrypt_option FROM sys.dm_exec_connections
GO
Другие вопросы по тегам