Требования к сертификатам для SQL Server

В этой статье описываются требования к сертификатам для SQL Server и проверка, если сертификат соответствует этим требованиям.

Требования к сертификату для шифрования SQL Server

Для использования TLS для шифрования SQL Server необходимо подготовить сертификат (один из трех цифровых типов), который соответствует следующим условиям:

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

  • Учетная запись службы SQL Server должна иметь необходимые разрешения для доступа к сертификату TLS. Дополнительные сведения см. в разделе "Настройка SQL Server ядро СУБД для шифрования подключений".

  • Текущее системное время должно быть после значения свойства Valid от и до значения свойства Valid для сертификата. Дополнительные сведения см. в разделе "Сертификаты с истекшим сроком действия".

    Примечание.

    Сертификат должен быть предназначен для проверки подлинности сервера. Для этого требуется задать свойству сертификата Улучшенный ключ значение Проверка подлинности сервера (1.3.6.1.5.5.7.3.1).

  • Сертификат должен быть создан с помощью KeySpec параметра AT_KEYEXCHANGE. Для этого требуется сертификат, использующий устаревший поставщик криптографических служба хранилища для хранения закрытого ключа. Как правило, свойство использования ключа сертификата (KEY_USAGE) также включает в себя шифрование ключей (CERT_KEY_ENCIPHERMENT_KEY_USAGE) и цифровую подпись (CERT_DIGITAL_SIGNATURE_KEY_USAGE).

  • Свойство Субъект сертификата должно указывать, что общее имя (CN) совпадает с именем узла или полным доменным именем (FQDN) сервера. При использовании имени узла dns-суффикс должен быть указан в сертификате. Если SQL Server работает в отказоустойчивом кластере, общее имя должно соответствовать имени узла или полное доменное имя виртуального сервера, а сертификаты должны быть подготовлены на всех узлах в отказоустойчивом кластере. Например, если у вас есть кластер с двумя узлами с именами узлов и test2.*<your company>*.comвиртуальным сервером с именем test1.*<your company>*.com virtsql, необходимо установить сертификат для virtsql.*<your company>*.com обоих узлов. Дополнительные сведения о кластерах SQL см. в разделе "Перед установкой отказоустойчивой кластеризации".

  • При подключении к прослушивателю группы доступности сертификаты, подготовленные для каждого узла сервера-участника в отказоустойчивом кластере, также должны иметь список всех прослушивателей группы доступности в альтернативном имени сертификата. Дополнительные сведения см. в разделе "Прослушиватели" и SSL-сертификаты. Дополнительные сведения о SQL AlwaysOn см. в Подключение прослушивателю группы доступности AlwaysOn.

  • Альтернативное имя субъекта должно содержать все имена, которые клиенты могут использовать для подключения к экземпляру SQL Server. При использовании групп доступности альтернативное имя субъекта должно включать 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 можно использовать один из следующих методов:

  • средство sql проверка: 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.