« Le certificat reçu du serveur distant a été émis par une autorité de certification non approuvée » lorsque vous vous connectez à SQL Server
Cet article vous aide à résoudre le problème qui se produit lorsque vous essayez d’établir une connexion chiffrée à SQL Server.
Version du produit d’origine : SQL Server
Numéro de base de connaissances d’origine : 2007728
Symptômes
Lorsque vous vous connectez à SQL Server, vous pouvez recevoir le message d’erreur suivant :
Une connexion a été établie avec le serveur, mais une erreur s’est ensuite produite pendant le processus de connexion. (fournisseur : Fournisseur SSL, erreur : 0 - La chaîne de certificats a été émise par une autorité qui n’est pas approuvée.) (.Net SqlClient Fournisseur de données)
En outre, le message d’erreur suivant est enregistré dans le journal des événements du système Windows.
Log Name: System
Source: Schannel
Date: 10/13/2020 3:03:31 PM
Event ID: 36882
Task Category: None
Level: Error
Keywords:
User: USERNAME
Computer: COMPUTERNAME
Description:
The certificate received from the remote server was issued by an untrusted certificate authority. Because of this, none of the data contained in the certificate can be validated. The TLS connection request has failed. The attached data contains the server certificate.
Cause
Cette erreur se produit lorsque vous essayez d’établir une connexion chiffrée à SQL Server à l’aide d’un certificat non vérifiable. Cela peut se produire dans les scénarios suivants :
Scénario | Chiffrement côté serveur | chiffrement côté client | Type de certificat | Autorité émettrice de certificats présente dans le magasin autorités de certification racines approuvées |
---|---|---|---|---|
1 | Oui | Non | Vous approvisionnez un certificat à partir d’une source non approuvée (l’autorité émettrice de certificat n’est pas répertoriée comme autorité approuvée dans les autorités de certification racines approuvées sur l’ordinateur client) | Non |
2 | Désactivé | Oui | Certificat auto-généré SQL Server | Les certificats auto-signés ne s’affichent pas dans ce magasin. |
Lors de l’établissement de connexions chiffrées à SQL Server, Le canal sécurisé (Schannel) crée la liste des autorités de certification approuvées en recherchant le magasin autorités de certification racines approuvées sur l’ordinateur local. Pendant la négociation TLS, le serveur envoie son certificat de clé publique au client. L'émetteur d'un certificat de clé publique porte le nom d'Autorité de certification. Le client doit s'assurer que l'autorité de certification est approuvée par le client. Il doit pour cela connaître la clé publique des autorités de certification à l'avance. Lorsque Schannel détecte un certificat émis par une autorité de certification non approuvée, par exemple dans les deux cas précédents, vous obtenez le message d’erreur répertorié dans la section Symptômes .
Résolution
Si vous utilisez intentionnellement un certificat d’une autorité non approuvée ou d’un certificat auto-signé pour chiffrer les connexions à SQL Server, vous pouvez utiliser l’une des options suivantes :
Pour le scénario 1, ajoutez l’autorité de certification au magasin autorités de certification racines approuvées sur l’ordinateur client qui lance une connexion chiffrée. Pour ce faire, effectuez l’exportation du certificat de serveur et installez l’autorité de certification racine sur les procédures de l’ordinateur client répertoriées dans les sections suivantes de cette séquence.
Exporter le certificat de serveur
L’exemple utilise un fichier nommé caCert.cer comme fichier de certificat. Vous devez obtenir ce fichier de certificat à partir du serveur. Les étapes suivantes expliquent comment exporter le certificat de serveur vers un fichier :
Cliquez sur Démarrer , puis Exécuter, puis tapez MMC. (MMC signifie Microsoft Management Console.)
Dans MMC, ouvrez les certificats.
Développez Personnel, puis Certificats.
Cliquez avec le bouton droit sur le certificat de serveur, puis sélectionnez Toutes les tâches à> exporter.
Cliquez sur Suivant pour passer la boîte de dialogue d’accueil de l’Assistant Exportation de certificat.
Vérifiez que Non, n’exportez pas la clé privée est sélectionnée, puis sélectionnez Suivant.
Assurez-vous que l’un des fichiers binaires codés par DER X.509 (. CER) ou X.509 codé en base 64 (. CER) est sélectionné, puis cliquez sur Suivant.
Entrez un nom de fichier d'exportation.
Cliquez sur Suivant, puis sur Terminer pour exporter le certificat.
Installer l’autorité de certification racine sur l’ordinateur client
Démarrez le composant logiciel enfichable Certificats pour MMC sur l’ordinateur client, puis ajoutez le composant logiciel enfichable Certificats.
Dans la boîte de dialogue Composant logiciel enfichable Certificats, sélectionnez Compte d’ordinateur , puis Sélectionnez Suivant.
Dans le volet Sélectionner un ordinateur, sélectionnez Ordinateur local : (l’ordinateur sur lequel cette console est en cours d’exécution), puis sélectionnez Terminer.
Choisissez OK pour fermer la boîte de dialogue Ajouter ou supprimer des composants logiciels enfichables .
Dans le volet gauche de MMC, développez le nœud Certificats (ordinateur local).
Développez le nœud Autorités de certification racines approuvées, cliquez avec le bouton droit sur le sous-dossier Certificats , sélectionnez Toutes les tâches, puis sélectionnez Importer.
Dans l’Assistant Importation de certificat, dans la page d’accueil, sélectionnez Suivant.
Dans la page Fichier à importer , sélectionnez Parcourir.
Accédez à l’emplacement du fichier de certificat caCert.cer , sélectionnez le fichier, puis sélectionnez Ouvrir.
Dans la page Fichier à importer , sélectionnez Suivant.
Dans la page Magasin de certificats, acceptez la sélection par défaut, puis sélectionnez Suivant.
Dans la page Fin de l’Assistant Importation de certificat, sélectionnez Terminer.
Pour les scénarios 1 et 2, définissez le paramètre De certificat de serveur de confiance sur true dans votre application cliente.
Pour plus d’informations sur la procédure à suivre, consultez les rubriques suivantes :
Utilisation du chiffrement sans validation dans SQL Server Native Client
Connexion avec chiffrement à l’aide du pilote Microsoft JDBC pour SQL Server
Note
Si vous vous connectez à SQL Server avec SQL Server Management Studio, sélectionnez l’onglet Options dans la fenêtre Se connecter au serveur, puis sélectionnez l’option de certificat de serveur d’approbation.
Attention : les connexions SSL chiffrées à l’aide d’un certificat auto-signé ne fournissent pas de sécurité forte. Ils sont vulnérables aux man-in-the-middle
attaques. Vous ne devez pas vous appuyer sur SSL à l’aide de certificats auto-signés dans un environnement de production ou sur des serveurs connectés à Internet.
Si la configuration décrite dans les sections précédentes de cet article n’est pas inattendue, vous pouvez utiliser l’une des options suivantes pour résoudre ce problème :
Configurez le moteur de base de données pour utiliser le chiffrement conformément à la procédure dans Activer les connexions chiffrées au Moteur de base de données.
Si le chiffrement n’est pas obligatoire :
Désactivez les paramètres de chiffrement (le cas échéant) dans votre application cliente.
Désactivez le chiffrement côté serveur à l’aide du Gestionnaire de configuration SQL Server. Pour plus d’informations sur la procédure à suivre, consultez Configurer le serveur.