Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описываются требования к сертификатам для SQL Server и проверка соответствия сертификата этим требованиям.
Требования к сертификату для шифрования SQL Server
Для использования tls для шифрования SQL Server необходимо подготовить сертификат (один из трех цифровых типов), соответствующий следующим условиям:
Сертификат должен находиться в хранилище сертификатов локального компьютера или в хранилище сертификатов учетной записи службы SQL Server. Рекомендуется использовать хранилище сертификатов локального компьютера, так как это позволяет избежать перенастройки сертификатов с изменениями учетной записи запуска SQL Server.
Учетная запись службы SQL Server должна иметь необходимые разрешения для доступа к сертификату TLS. Дополнительные сведения см. в разделе "Настройка ядра СУБД SQL Server для шифрования подключений".
Текущее системное время должно быть больше значения свойства Valid from и перед значением свойства Valid to сертификата. Дополнительные сведения см. в разделе "Сертификаты с истекшим сроком действия".
Примечание.
Сертификат должен быть предназначен для проверки подлинности сервера. Для этого требуется свойство расширенного использования ключа сертификата, чтобы указать проверку подлинности сервера (1.3.6.1.5.5.7.3.1).
Сертификат должен быть создан с помощью опции
KeySpec
AT_KEYEXCHANGE
. Для этого требуется сертификат, использующий устаревший поставщик криптографического хранилища для хранения закрытого ключа. Как правило, свойство использования ключа сертификата (KEY_USAGE) также включает в себя шифрование ключей (CERT_KEY_ENCIPHERMENT_KEY_USAGE
) и цифровую подпись (CERT_DIGITAL_SIGNATURE_KEY_USAGE
).Свойство Subject сертификата должно указывать, что общее имя (CN) совпадает с именем узла или полным доменным именем (FQDN) сервера. При использовании имени узла dns-суффикс должен быть указан в сертификате. Если SQL Server работает в отказоустойчивом кластере, общее имя должно соответствовать имени узла или полное доменное имя виртуального сервера, а сертификаты должны быть подготовлены на всех узлах в отказоустойчивом кластере. Например, если у вас есть кластер из двух узлов с именами
test1.*<your company>*.com
иtest2.*<your company>*.com
, и виртуальным сервером с именем virtsql, необходимо установить сертификат дляvirtsql.*<your company>*.com
на обоих узлах. Дополнительные сведения о кластерах SQL см. в разделе "Перед установкой отказоустойчивой кластеризации".При подключении к прослушивателю группы доступности сертификаты, подготовленные для каждого узла сервера-участника в отказоустойчивом кластере, также должны иметь список всех прослушивателей группы доступности в альтернативном имени субъекта сертификата. Дополнительные сведения см. в разделе "Прослушиватели" и SSL-сертификаты. Дополнительные сведения о SQL AlwaysOn см. в разделе "Подключение к прослушивателю группы доступности AlwaysOn".
Альтернативное имя субъекта должно содержать все имена, которые клиенты могут использовать для подключения к экземпляру SQL Server. При использовании групп доступности альтернативное имя субъекта (SAN) должно включать NetBIOS и полное доменное имя (FQDN) локального хоста, а также созданных слушателей.
Клиент должен иметь возможность проверить владение сертификатом, используемым сервером. Если у клиента есть сертификат открытого ключа центра сертификации, подписанный сертификатом сервера, дополнительная конфигурация не требуется. Microsoft Windows включает сертификаты открытого ключа многих центров сертификации. Если сертификат сервера подписан общедоступным или частным центром сертификации, для которого у клиента нет сертификата открытого ключа, необходимо установить сертификат открытого ключа центра сертификации, подписавший сертификат сервера на каждом клиенте, который будет подключаться к SQL Server.
Это важно
SQL Server не запускается, если сертификат существует в хранилище компьютеров, но соответствует только некоторым требованиям в приведенном выше списке, а если он настроен вручную для использования диспетчером конфигурации SQL Server или с помощью записей реестра. Выберите другой сертификат, который соответствует всем требованиям, или удалите сертификат из использования SQL Server, пока не сможете подготовить сертификат, соответствующий требованиям, или используйте самоподписанный сертификат, как описано в SQL Server, генерирующий самоподписанные сертификаты.
Проверка соответствия сертификата требованиям
В SQL Server 2019 (15.x) и более поздних версиях диспетчер конфигурации SQL Server автоматически проверяет все требования к сертификату на этапе настройки. Если SQL Server успешно запускается после настройки сертификата, это хороший признак того, что SQL Server может использовать этот сертификат. Но некоторые клиентские приложения по-прежнему могут иметь другие требования к сертификатам, которые можно использовать для шифрования, и могут возникать различные ошибки в зависимости от используемого приложения. В этом сценарии необходимо проверить документацию по поддержке клиентского приложения, чтобы получить дополнительные сведения об этой теме.
Вы можете использовать один из следующих методов для проверки допустимости сертификата для использования с SQL Server:
Средство sqlcheck:
sqlcheck
это средство командной строки, которое проверяет параметры текущего компьютера и учетной записи службы и создает текстовый отчет в окне консоли, которое полезно для устранения различных ошибок подключения. Выходные данные содержат следующие сведения о сертификатах:Details for SQL Server Instance: This Certificate row in this section provides more details regarding the certificate being used by SQL Server (Self-generated, hard-coded thumbprint value, etc.). Certificates in the Local Computer MY Store: This section shows detailed information regarding all the certificates found in the computer certificate store.
Дополнительные сведения о возможностях инструмента и инструкции по скачиванию см. в разделе "Добро пожаловать в вики-сайт CSS_SQL_Networking_Tools".
Средство certutil:
certutil.exe
это программа командной строки, установленная в составе служб сертификатов. Вы можете использовать certutil.exe для дампа и отображения сведений о сертификате.-v
Используйте параметр для получения подробных сведений. Дополнительные сведения см. в разделе certutil.Оснастка сертификатов. Вы также можете использовать окно оснастки "Сертификаты " для просмотра дополнительных сведений о сертификатах в различных хранилищах сертификатов на компьютере. Но это средство не отображает
KeySpec
информацию. Дополнительные сведения о том, как просматривать сертификаты с помощью оснастки MMC, см. в статье "Практическое руководство. Просмотр сертификатов с помощью оснастки MMC".
Дополнительные сведения
Сертификаты с истекшим сроком действия
SQL Server проверяет допустимость сертификатов только во время настройки. Например, нельзя использовать Configuration Manager в SQL Server 2019 (15.x) и более поздних версиях для подготовки сертификата с истекшим сроком действия. SQL Server продолжает работать без проблем, если сертификат становится недействительным после его выдачи. Но некоторые клиентские приложения, такие как Power BI, проверяют допустимость сертификата для каждого подключения и вызывают ошибку, если экземпляр SQL Server настроен на использование истекшим сроком действия сертификата для шифрования. Рекомендуется не использовать сертификат с истекшим сроком действия для шифрования SQL Server.