Erreur « La chaîne de certificats a été émise par une autorité non approuvée » après la mise à niveau des applications SNAC

La prise en charge du SQL Server Native Client 11.0 (SNAC) en tant que pilote pour les applications de base de données a pris fin le 12 juillet 2022. Toutes les applications qui utilisent SNAC 11.0 doivent être mises à jour pour utiliser des versions plus récentes des pilotes (voir Télécharger le pilote ODBC pour SQL Server et Télécharger Microsoft OLE DB Driver pour SQL Server). Cet article décrit un problème qui se produit lorsque vous mettez à niveau votre application SNAC 11.0 pour utiliser Microsoft OLE DB Driver 19 pour SQL Server ou Microsoft ODBC Driver 18.x pour SQL Server.

Si vous avez récemment mis à niveau votre application SQL Server Native Client 11.0 (Provider=SQLNCLI11) pour utiliser Microsoft OLE DB Driver 19 pour SQL Server (Provider=MSOLEDBSQL19), vous pouvez recevoir des messages d’erreur qui ressemblent aux messages suivants :

[Microsoft OLE DB Driver 19 for SQL Server] : Le client ne peut pas établir la connexion

[Microsoft OLE DB Driver 19 for SQL Server] : Fournisseur SSL : la chaîne de certificats a été émise par une autorité qui n’est pas approuvée.

Cause

Ces erreurs se produisent si les deux conditions suivantes sont remplies :

  • Le paramètre Forcer le chiffrement pour le SQL Server instance est défini sur Non.

  • Le client chaîne de connexion ne spécifie pas explicitement de valeur pour la propriété de chiffrement, ou l’option Chiffrement n’a pas été explicitement définie ou mise à jour dans le DSN.

L’erreur se produit en raison d’une modification du comportement par défaut des pilotes clients. Les versions antérieures des pilotes clients sont conçues pour supposer que le chiffrement des données est DÉSACTIVÉ par défaut. Les nouveaux pilotes supposent que ce paramètre est ACTIVÉ par défaut. Étant donné que le chiffrement des données est défini sur ON, le pilote tente de valider le certificat du serveur et échoue.

Solutions

  • Solution 1 : Utilisez Microsoft OLE DB Driver pour SQL Server 18.x. Vous pouvez télécharger le pilote à partir des notes de publication pour le Microsoft OLE DB Driver pour SQL Server.

  • Solution 2 : Si l’application chaîne de connexion propriété spécifie déjà la valeur Oui ou Obligatoire pour le paramètre Chiffrer/Utiliser le chiffrement pour les données, remplacez la valeur par Non ou Facultatif. Par exemple, Utiliser le chiffrement pour les données=Facultatif. Si le chaîne de connexion ne spécifie aucune valeur pour Chiffrer/Utiliser le chiffrement pour les données, ajoutez Use Encryption for Data=Optional à la chaîne de connexion. Pour plus d’informations, consultez Chiffrement et validation de certificat.

  • Solution 3 : Ajoutez ;TrustServerCertificate=true au chaîne de connexion. Cela force le client à approuver le certificat sans validation.

  • Remarque

    Actuellement, MSOLEDBSQL19 empêche la création de serveurs liés sans chiffrement et sans certificat approuvé (un certificat auto-signé est insuffisant). Si des serveurs liés sont nécessaires, utilisez la version existante prise en charge de MSOLEDBSQL.

Voir aussi