"Цепочка сертификатов была выпущена центром, который не является доверенным" при подключении БД в роли виртуальной машины с веб-сайта Azure


Я испытываю ошибку при подключении моей БД, которая находится в роли виртуальной машины (у меня есть роль SQL VM) с веб-сайта Azure. Роль виртуальной машины и веб-сайт Azure находятся в западной зоне. Я столкнулся со следующим вопросом "SqlException (0x80131904): соединение было успешно установлено с сервером, но затем произошла ошибка во время процесса входа в систему. (поставщик: поставщик SSL, Ошибка: 0-цепочка сертификатов была выпущена центром, которому не доверяют.)]"

Я могу подключиться к моей БД с использованием среда SSMS. Порт 1433 открыт на моей роли виртуальной машины. Что не так с моей связью?

6 102

6 ответов:

вероятно, у вас нет подписанного сертификата CA, установленного в доверенном корневом хранилище вашей виртуальной машины SQL.

Если у вас Encrypt=True в строке подключения установите значение off (не рекомендуется) или добавьте в строку подключения следующее:

TrustServerCertificate=True

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

в долгосрочной перспективе, я бы рекомендовал использоватьдавайте шифровать чтобы получить сертификат с подписью CA от известного доверенного CA бесплатно и установить его на виртуальной машине. Не забудьте настроить его автоматическое обновление. Дополнительные сведения по этому вопросу см. в электронной документации по SQL Server в разделах "иерархия шифрования"и" использование шифрования без проверки".

HTH

Если вы видите это сообщение об ошибке при попытке подключения с помощью SQL Management Studio, добавьте TrustServerCertificate=True для дополнительных параметров подключения.

If you're using SQL Management Studio, please goto connection properties and click on "Trust server certificated" Если вы используете SQL Management Studio, перейдите к свойствам подключения и нажмите "Trust server certificated"

Если вы пытаетесь получить доступ к нему через подключения к данным в Visual Studio 2015 и получаете вышеуказанную ошибку, перейдите в раздел Дополнительно и установите TrustServerCertificate=True для ошибки, чтобы уйти.

то же самое может быть достигнуто от самого клиента ssms. Просто откройте ssms, вставьте имя сервера, а затем из параметров под заголовком свойства подключения убедитесь, что сертификат сервера доверия проверен.

в случае, если это поможет кому-то еще, я столкнулся с этой ошибкой, пытаясь запустить профилировщик, хотя мое соединение было проверено сертификатом сервера доверия, и я добавил TrustServerCertificate=True в разделе Advanced. Я перешел на экземпляр SSMS, работающий от имени администратора, и профилировщик запустился без проблем. (Ранее я обнаружил, что, когда мои подключения даже к локальным заняли много времени для подключения, Запуск от имени администратора помог).