SQL Server service ne peut pas démarrer après avoir configuré un instance pour utiliser un certificat Secure Sockets Layer

Cet article vous aide à résoudre un problème qui se produit après la configuration d’un certificat SSL qui utilise Microsoft Enhanced Cryptographic Provider 1.0.

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 928779

Symptômes

Dans ce scénario, vous configurez un instance de SQL Server pour utiliser un certificat SSL. Le certificat SSL utilise le fournisseur de chiffrement amélioré 1.0.

Lorsque vous essayez de démarrer le service SQL Server dans ce scénario, les messages d’erreur suivants sont écrits dans le fichier SQL Server Errorlog :

Error: 26014, Severity: 16, State: 1.
Unable to load user-specified certificate [Cert Hash(sha1) "%hs"]. The server will not accept a connection. You should verify that the certificate is correctly installed. See "Configuring Certificate for Use by SSL" in Books Online.

Error: 17182, Severity: 16, State: 1.
TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property.

Error: 17826, Severity: 18, State: 3.
Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.

Error: 17120, Severity: 16, State: 1.
SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

Cause

Ce problème se produit parce que vous ne pouvez pas utiliser un certificat qui a le fournisseur de chiffrement amélioré version 1.0 comme certificat de serveur.

Résolution

Pour résoudre ce problème, utilisez l’une des méthodes suivantes :

  • Ne spécifiez aucun certificat pour permettre au serveur SQL de générer un certificat auto-signé. Pour ce faire, laissez la zone Certificat vide dans la Gestionnaire de configuration SQL Server.

    Pour plus d’informations, visitez les sites suivants :

  • Utilisez un certificat qui utilise le fournisseur de chiffrement de canal RSA pour le certificat SQL Server.

  • Utilisez Gestionnaire de configuration SQL Server pour configurer le certificat. À compter de SQL Server 2019, vous pouvez utiliser l’Configuration Manager SQL pour afficher et valider les certificats installés dans un SQL Server instance, en identifiant les certificats susceptibles d’expirer et d’autres tâches. Pour plus d’informations, consultez Gestion des certificats (Gestionnaire de configuration SQL Server)

Plus d’informations

Les certificats SSL qui utilisent le fournisseur de chiffrement amélioré 1.0 peuvent être utilisés pour les certificats clients. Toutefois, les certificats ne conviennent pas en tant que certificats de serveur. Pour déterminer le fournisseur d’un certificat, exécutez la commande à l’invite de commandes : certutil -v -store my.

Le message d’erreur suivant est mentionné dans la section Symptômes :

L’initialisation TDSSNIClient du serveur date et heure a échoué avec l’erreur 0x80092004, status code 0x80.

Dans ce message d’erreur, l’état d’erreur 0x80 indique qu’il existe un problème dans le certificat SSL. En outre, 0x80092004 est un code d’erreur SSPI (Security Support Provider Interface) qui se traduit par CRYPT_E_NOT_FOUND.