Я установил подстановочный сертификат в сертификаты (локальный компьютер) \ 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 действительно поддерживает сертификаты с подстановочными знаками. Я не уверен, что все мои шаги необходимы, но мне не удалось их пропустить.
Создайте самозаверяющий сертификат, общее имя которого совпадает с именем сервера 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
Самозаверяющий сертификат теперь появится в раскрывающемся списке диспетчера конфигурации SQL Server. Настройте параметры шифрования SQL Server с помощью самозаверяющего сертификата. Перезапустите SQL Server и проверьте.
Получите хэш сертификата вашего подстановочного SSL-сертификата.
certutil -store "my" "*.domain.com"
Отредактируйте реестр и замените запись сертификата хешем сертификата вашего подстановочного SSL-сертификата. Перезапустите SQL Server и проверьте.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL*version_revision*.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\
Когда я сначала попробовал это, не создав предварительно самозаверяющий сертификат, SQL Server не запускался.