« La chaîne de certificats a été émise par une autorité qui n'est pas approuvée » lors de la connexion à la base de données dans un rôle VM depuis un site web Azure

« La chaîne de certificats a été émise par une autorité qui n’est pas approuvée » lors de la connexion à la base de données dans un rôle VM depuis un site web Azure


Source : Stack Overflow [sql-server],)

Cette réponse fournit une explication et une solution temporaire, mais propose également de meilleures recommandations, notamment l’achat et l’installation d’un certificat approprié.

Veuillez consulter également les autres réponses très votées dans ce fil, y compris cette réponse d’Alex From Jitbit, concernant un changement majeur lors de la migration de System.Data.Sql vers Microsoft.Data.Sql (spoiler : Encrypt est désormais défini sur true par défaut).

Vous n’avez probablement pas de certificat signé par une autorité de certification (CA) installé dans le magasin racine de confiance de votre machine virtuelle SQL.

Si vous avez Encrypt=True dans la chaîne de connexion, soit désactivez-le (non recommandé), soit ajoutez ce qui suit dans la chaîne de connexion (également non recommandé) :

TrustServerCertificate=True

SQL Server créera un certificat auto-signé si vous n’en installez pas un à utiliser, mais il ne sera pas approuvé par l’appelant puisqu’il n’est pas signé par une CA, sauf si vous indiquez à la chaîne de connexion de faire confiance à tout certificat serveur par défaut.

À long terme, je recommanderais d’utiliser Let’s Encrypt pour obtenir gratuitement un certificat signé par une CA connue et approuvée, et de l’installer sur la machine virtuelle. N’oubliez pas de le configurer pour qu’il se renouvelle automatiquement. Vous pouvez en lire plus sur ce sujet dans la documentation SQL Server sous le thème « Hiérarchie de chiffrement » et « Utilisation du chiffrement sans validation ».