Рейтинг:0

Как определить общее имя (CN) для сертификата Microsoft SQL?

флаг kz

Я пытаюсь настроить самозаверяющий сертификат для подключения сервера причала к базе данных разработки sql. Я следую инструкциям здесь: https://codekabinett.com/rdumps.php?Lang=2&targetDoc=create-install-ssl-tls-certificate-sql-сервер но я столкнулся с небольшим препятствием. Когда я пытаюсь установить сертификат в диспетчере сервера sql, сертификаты не отображаются в раскрывающемся списке. Я подумал, что, возможно, мне нужно добавить сертификат в доверенные, поэтому я сделал это и повторил попытку с тем же результатом.

Теперь я подозреваю, что общее имя (CN), которое я выбрал при создании сертификата, не соответствует тому, что ожидает sqlserver. Согласно инструкции

Это должно быть имя компьютера (локальное имя компьютера Windows, а не DNS-имя) компьютера SQL Server.

Сервер sql находится на удаленной машине. Как определить правильный CN для сертификата? Можно ли вообще настроить сертификаты для этого сервера sql с помощью SQLServerManager, работающего на моем локальном компьютере? Если нет, то как мне это сделать?

Обновлять:

Я прохожу процесс проверки того, что мой сертификат действителен для использования с sqlserver. Я использовал запрос:

ОБЪЯВИТЬ @Domain NVARCHAR(100)
EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\services\Tcpip\Parameters', N'Domain',@Domain OUTPUT
SELECT Cast(SERVERPROPERTY('MachineName') as nvarchar) + '.' + @Домен КАК FQDN

чтобы получить полное доменное имя и использовать его в качестве общего имени для сертификата. Я проверил, что свойство KeyUsage сертификата Аутентификация сервера (1.3.6.1.5.5.7.3.1) . Я использую pfx, поэтому параметр KeySpec должен быть хорошим. Я добавил pfx в доверенные корневые центры сертификации.

Я до сих пор не вижу сертификат в качестве опции в диспетчере сервера sql, поэтому должно быть что-то еще, что мне не хватает. Единственное, о чем я могу думать, это требование

Учетная запись службы SQL Server должна иметь необходимые разрешения для доступа к сертификату TLS.

но я не уверен, как это проверить или исправить, если это неправильно.

Рейтинг:2
флаг cn

Имя сертификата (в расширении альтернативного имени субъекта) должно соответствовать полному доменному имени (или DNS-имени) хост-компьютера, а не просто имени компьютера. Имя в сертификате должно соответствовать Сервер или же Источник данных свойство в строке подключения SQL.

флаг kz
Итак, если у меня есть строка подключения, например "jdbc:sqlserver://tura-dev:1433;databaseName=JetNavDwh_Live;" ожидаемый CN будет правильным "tura-dev"?
флаг cn
Да, это правильно. Однако, если ваш сервер является частью домена AD DS, рекомендуется использовать полное доменное имя (например, `tura-dev.example.com`) вместо имен NetBIOS, чтобы избежать двусмысленности и использовать DNS для разрешения имен и использовать полное доменное имя в строке подключения. Но в любом случае короткое имя допустимо и для внутреннего использования.
флаг kz
Странно, я использовал tura-dev, и он не появлялся. Есть ли что-то еще, что может помешать отображению сертификата в раскрывающемся списке?
флаг cn
Возможно, сертификат не является доверенным на сервере SQL или сервер SQL является частью домена (для чего требуется полное доменное имя). Полный список требований к сертификатам в Microsoft Docs: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-encrypted-connections-to-the-database-engine?view=sql -server-ver15#требования к сертификату
флаг kz
Итак, если мое доменное имя было «FOO», CN должно быть «FOO.tura-dev»?
флаг kz
@ Crypt32 Смотрите мои обновления к исходному сообщению. Я выполнил шаги по этой ссылке, и единственное, что я не могу понять, это как правильно настроить разрешения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.