<p>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é.</p>
<p>Veuillez consulter également les autres réponses très votées dans ce fil, y compris <a href="https://stackoverflow.com/a/70850834/">cette réponse d’Alex From Jitbit</a>, concernant un changement majeur lors de la migration de <code>System.Data.Sql</code> vers <code>Microsoft.Data.Sql</code> (spoiler : <code>Encrypt</code> est désormais défini sur <code>true</code> par défaut).</p>
<p>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.</p>
<p>Si vous avez <code>Encrypt=True</code> dans la chaîne de connexion, soit désactivez-le (non recommandé), soit ajoutez ce qui suit dans la chaîne de connexion (<a href="https://learn.microsoft.com/en-us/sql/relational-databases/native-client/features/using-encryption-without-validation?view=sql-server-ver15">également non recommandé</a>) :</p>
<pre><code class="lang-auto">TrustServerCertificate=True
</code></pre>
<p>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.</p>
<p><strong>À long terme, je recommanderais</strong> d’utiliser <a href="https://letsencrypt.org/">Let’s Encrypt</a> 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 ».</p>