Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Résumé
Cet article vous aide à résoudre les erreurs d’approbation de chaîne de certificats qui se produisent lorsque vous mettez à niveau des applications de base de données de SQL Server Native Client 11.0 (SNAC) vers Microsoft OLE DB Driver 19 ou Microsoft ODBC Driver 18 pour SQL Server.
Lorsque vous effectuez une mise à niveau de SNAC 11.0 vers des pilotes plus récents, vos applications peuvent ne pas se connecter à SQL Server avec des erreurs d’approbation de chaîne de certificats. Ce problème se produit parce que les pilotes plus récents activent le chiffrement par défaut et nécessitent une validation de certificat, tandis que le SNAC l’a désactivé par défaut. Pour corriger l’erreur, provisionnez un certificat approuvé par le client, ou ajustez les Encryptparamètres de connexion ou TrustServerCertificate les Use Encryption for Dataparamètres de connexion, comme décrit dans cet article.
Quel mot clé de chiffrement s’applique à votre pilote et à votre client
Le mot clé qui contrôle le chiffrement dépend du pilote et de la façon dont votre application génère son chaîne de connexion. Si vous utilisez un mot clé que le pilote ne reconnaît pas, la connexion échoue avec une erreur « mot clé non pris en charge » au lieu de l’erreur de certificat.
| Méthode de pilote et de connexion | Mot clé de chiffrement | Mot clé de confiance du certificat |
|---|---|---|
OLE DB Driver 19, chaîne de fournisseur (IDBInitialize::Initialize) |
Encrypt |
TrustServerCertificate=yes ou no |
OLE DB Driver 19, ADO ou chaîne d’initialisation (IDataInitialize) |
Use Encryption for Data |
Trust Server Certificate=true ou false |
| Pilote ODBC 18, chaîne de connexion ou DSN | Encrypt |
TrustServerCertificate=yes ou no |
-
OLE DB Driver 19 : Accepte
Optional,Mandatory(par défaut) etStrict. Pour assurer la compatibilité descendante, il accepte également les valeurs de la version 18, oùnoetOptionalcorrespondent àyes, ettrueetMandatorycorrespondent àfalse. -
Pilote ODBC 18 : Accepte
yes/mandatory(la valeur par défaut),/nooptionalet .strict -
Chaînes de fournisseur : Utiliser
TrustServerCertificate=yesouTrustServerCertificate=no. -
Chaînes d’initialisation et ADO : Utiliser
Trust Server Certificate=trueouTrust Server Certificate=false. - Mode strict : Valide toujours le certificat de serveur et ignore le paramètre d’approbation de certificat.
L’utilisation TrustServerCertificate=true dans une chaîne de fournisseur peut retourner une erreur de valeur non valide.
Pour obtenir les listes complètes de mots clés, consultez Utilisation des mots clés de chaîne de connexion avec OLE DB Driver pour SQL Server, Différences entre les versions majeures de MSOLEDBSQL et Mots clés et attributs de DSN et de chaîne de connexion.
Erreur de chaîne de certificats, cause et solutions pour OLE DB Driver 19 et ODBC Driver 18
Sélectionnez l’onglet du pilote vers lequel vous avez effectué la mise à niveau. Chaque onglet affiche le message d’erreur que vous voyez, pourquoi il se produit et les solutions dans l’ordre recommandé.
- Mise à niveau vers Microsoft OLE DB Driver 19 pour SQL Server
- Mise à niveau vers Microsoft ODBC Driver 18.x pour SQL Server
Après la mise à niveau de SQL Server Native Client 11.0 (Provider=SQLNCLI11) vers Microsoft OLE DB Driver 19 pour SQL Server, les tentatives de connexion peuvent échouer avec le message d’erreur suivant :
[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 de l’erreur d’approbation de chaîne de certificats lors de la mise à niveau vers Microsoft OLE DB Driver 19
Cette erreur indique que l’ordinateur client ne peut pas vérifier l’authenticité du certificat SQL Server, car il a été émis par une autorité de certification que le client n’approuve pas.
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.
La chaîne de connexion cliente 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 supposent 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 ACTIVÉ, le pilote tente de valider le certificat du serveur et échoue.
Solutions pour l'erreur de confiance dans la chaîne de certificats lors de la mise à niveau vers Microsoft OLE DB Driver 19
Installer un certificat approuvé par le client (recommandé)
Provisionnez un certificat TLS sur l’instance SQL Server à partir d’une autorité de certification approuvée par le client. Assurez-vous que le serveur fournit tous les certificats intermédiaires requis afin que le client puisse générer la chaîne vers une autorité de certification racine approuvée. Cette approche résout l’erreur tout en gardant le chiffrement et la validation des certificats activés. Pour plus d’informations, consultez Configurer le moteur de base de données SQL Server pour le chiffrement des connexions.
Approuver le certificat de serveur sans validation
Si vous ne pouvez pas provisionner immédiatement un certificat vérifiable, indiquez au pilote d’ignorer la validation des certificats. Le mot clé que vous utilisez dépend de la façon dont votre application génère l’chaîne de connexion :
- Dans une chaîne du fournisseur, ajoutez
TrustServerCertificate=yes. - Dans une chaîne ADO ou d’initialisation, ajoutez
Trust Server Certificate=true.
Ce paramètre n’active pas le chiffrement lui-même. Il indique au pilote d’ignorer la validation des certificats lorsque la connexion est chiffrée, ce qui laisse la connexion vulnérable aux attaques de l’adversaire dans le milieu. Utilisez-la uniquement comme mesure temporaire. En Strict mode de chiffrement, le pilote ignore ce paramètre et valide toujours le certificat.
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.
Définir le mot clé de chiffrement sur Facultatif
Modifiez le paramètre de chiffrement afin que le pilote ne nécessite pas de certificat validé. Le mot clé que vous utilisez dépend de la façon dont votre application génère l’chaîne de connexion :
- Dans une chaîne du fournisseur, définissez
Encrypt=Optional. - Dans une chaîne ADO ou d’initialisation, définissez
Use Encryption for Data=Optional.
La valeur par défaut dans OLE DB Driver 19 est Mandatory. Si la chaîne de connexion spécifie déjà Mandatory, yes ou true, remplacez la valeur par Optional. Si le chaîne de connexion ne spécifie pas de valeur, ajoutez le mot clé. Cette modification restaure le comportement de chiffrement de la version 18 et réduit la sécurité de la connexion.
Pour plus d’informations, consultez Chiffrement et validation de certificat dans OLE DB.
Utiliser OLE DB Driver 18.x comme mesure temporaire
Microsoft OLE DB Driver pour SQL Server 18.x n'active pas le chiffrement par défaut. Il n'est donc pas affecté par cette modification. Traitez cette option comme temporaire et planifiez votre déplacement vers OLE DB Driver 19. Vous pouvez télécharger le pilote depuis Notes de publication du Microsoft OLE DB Driver pour SQL Server.
Contenu connexe
- Activez les connexions chiffrées dans le moteur de base de données
- Le certificat reçu du serveur distant a été émis par une erreur d’autorité de certification non approuvée lorsque vous vous connectez à SQL Server
- Échec de validation de certificat
- Stratégies de prise en charge pour SQL Server Native Client
- Explication du cycle de vie du SNAC