2022 Update - Diese Antwort (wie in den Kommentaren erwähnt) bietet eine Erklärung und eine vorläufige Lösung, enthält jedoch auch einige bessere Empfehlungen, einschließlich des Kaufs und der Installation eines ordnungsgemäßen Zertifikats (dank zahlreicher Bearbeitungen durch die Community).
Bitte beachten Sie auch die anderen hoch bewerteten Antworten in diesem Thread, einschließlich der von @Alex From Jitbit unten über eine Änderung bei der Migration von System.Data.Sql
zu Microsoft.Data.Sql
(Spoiler: Encrypt
ist jetzt standardmäßig auf true
gesetzt).
Ursprüngliche Antwort:
Sie haben wahrscheinlich kein von einer CA signiertes Zertifikat im vertrauenswürdigen Stammzertifikatspeicher Ihres SQL-VM installiert.
Wenn Sie Encrypt=True
in der Verbindungszeichenfolge haben, setzen Sie das entweder auf aus (nicht empfohlen) oder fügen Sie das folgende in die Verbindungszeichenfolge ein (ebenfalls nicht empfohlen):
TrustServerCertificate=True
SQL Server erstellt ein selbstsigniertes Zertifikat, wenn Sie keines installieren, aber es wird vom Aufrufer nicht vertraut, da es nicht von einer CA signiert ist, es sei denn, Sie teilen der Verbindungszeichenfolge mit, dass standardmäßig jedem Serverzertifikat vertraut werden soll.
Auf lange Sicht würde ich empfehlen, Let's Encrypt zu nutzen, um ein von einer bekannten vertrauenswürdigen CA signiertes Zertifikat kostenlos zu erhalten und es auf der VM zu installieren. Vergessen Sie nicht, es so einzurichten, dass es automatisch aktualisiert wird. Weitere Informationen zu diesem Thema finden Sie in der SQL Server-Dokumentation unter den Themen "Verschlüsselungshierarchie" und "Verwendung von Verschlüsselung ohne Validierung".