« La chaîne de certificats a été émise par une autorité qui n’est pas approuvée » après la mise à niveau des applications SNAC
La prise en charge de 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 le SNAC 11.0 doivent être mises à jour pour utiliser des versions plus récentes des pilotes (consultez Télécharger odbc Driver for SQL Server et Download 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.
- Mise à niveau vers Microsoft OLE DB Driver 19 pour SQL Server
- Mise à niveau vers 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 similaires aux messages suivants :
[Microsoft OLE DB Driver 19 pour SQL Server] : le client ne peut pas établir de connexion
[Microsoft OLE DB Driver 19 pour 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 de l’instance SQL Server 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é définie ou mise à jour explicitement 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 du Microsoft OLE DB Driver pour SQL Server.
Solution 2 : Si l’application chaîne de connexion propriété spécifie déjà une valeur Oui ou Obligatoire pour le paramètre Chiffrer/Utiliser le chiffrement pour les données, remplacez la valeur Non ou Facultatif. Par exemple, Utiliser le chiffrement des données=Facultatif. Si le chaîne de connexion ne spécifie aucune valeur pour Encrypt/Use Encryption for Data, ajoutez Use Encryption for Data=Optional à l’chaîne de connexion. Pour plus d’informations, consultez Chiffrement et validation des certificats.
Solution 3 : Ajouter
;TrustServerCertificate=true
au chaîne de connexion. Cela force le client à approuver le certificat sans validation.-
Note
Actuellement, MSOLEDBSQL19 empêche la création de serveurs liés sans chiffrement et sans certificat approuvé (un certificat auto-signé est insuffisant). Si vous avez besoin de serveurs liés, utilisez la version prise en charge existante de MSOLEDBSQL.