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

Подстановочный сертификат sql 2008 r2

Я установил подстановочный сертификат в сертификаты (локальный компьютер) \ Personal на сервере sql. Мы используем сервер Windows 2008R2 и 2008 R2 SQL. Сертификат выдает StartCom. С сертификатом все в порядке (я использовал его в IIS), но он не появился в раскрывающемся списке протоколов диспетчера конфигурации sql. Итак, я следил за статьей Microsoft:

http://support2.microsoft.com/kb/316898

и добавлен отпечаток сертификата в реестр. Перезапущена служба SQL.

Затем я пытаюсь подключиться к серверу sql с помощью SMSS. Я получаю сообщение об ошибке:

«Соединение с сервером было успешно установлено, но затем произошла ошибка во время квитирования перед входом в систему. (Поставщик: поставщик SSL, ошибка: 0 - CN-имя сертификата не соответствует переданному значению.) (Microsoft SQL Server, Ошибка : -2146762481) "

Таким образом, очевидно, что проблема заключается в сертификате с подстановкой, потому что он выдается на * .domain.com, а имя сервера - server.domain.com.

В этой статье Microsoft сообщает, что «SQL Server 2008 R2 и собственный клиент SQL Server 2008 R2 поддерживают сертификаты с подстановочными знаками».

http://technet.microsoft.com/en-us/library/ms189067(v=sql.105).aspx

Итак, вопрос будет: Sql 2008 r2 поддерживает или не поддерживает сертификаты с подстановочными знаками. Если поддерживает, значит, есть проблема? Почему я получаю эту ошибку?

Итак, после нескольких дней попытки использовать групповой сертификат мы сгенерировали сертификат с именем хоста, и через 5 минут мы получили зашифрованное соединение. Но все же есть вопрос .. Может ли sql 2008 r2 работать с wildcard сертификатами или нет?

Мне потребовалось много проб и в основном ошибок, чтобы заставить его работать, но SQL Server действительно поддерживает сертификаты с подстановочными знаками. Я не уверен, что все мои шаги необходимы, но мне не удалось их пропустить.

  1. Создайте самозаверяющий сертификат, общее имя которого совпадает с именем сервера Windows.

    makecert -r -pe -n "CN=HOSTNAME" -b 01/01/2015 -e 01/01/2025 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
    
  2. Самозаверяющий сертификат теперь появится в раскрывающемся списке диспетчера конфигурации SQL Server. Настройте параметры шифрования SQL Server с помощью самозаверяющего сертификата. Перезапустите SQL Server и проверьте.

  3. Получите хэш сертификата вашего подстановочного SSL-сертификата.

    certutil -store "my" "*.domain.com"
    
  4. Отредактируйте реестр и замените запись сертификата хешем сертификата вашего подстановочного SSL-сертификата. Перезапустите SQL Server и проверьте.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL*version_revision*.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\
    

Когда я сначала попробовал это, не создав предварительно самозаверяющий сертификат, SQL Server не запускался.