“De certificaatketen is uitgegeven door een instantie die niet wordt vertrouwd” bij het verbinden van DB in VM-rol vanaf de Azure-website

Ik ervaar een fout bij het verbinden van MIJN DB die zich in de VM-rol bevindt (ik heb de SQL VM-rol) van de Azure-website. Zowel de VM-rol als de Azure-website bevinden zich in de westelijke zone. Ik heb het volgende probleem:

SqlException (0x80131904): er is een verbinding tot stand gebracht met de server, maar er is een fout opgetreden tijdens het aanmeldingsproces. (provider: SSL-provider, fout: 0 – De certificaatketen is uitgegeven door een autoriteit die niet wordt vertrouwd.)]

Ik kan verbinding maken met mijn database via SSMS. 1433 poort is open op mijn VM-rol.
Wat is er mis met mijn verbinding?


Antwoord 1, autoriteit 100%

U hebt waarschijnlijk geen door een CA ondertekend certificaat geïnstalleerd in de vertrouwde rootstore van uw SQL-VM.

Als u Encrypt=Truein de verbindingsreeks heeft, zet u dat uit (niet aanbevolen), of voegt u het volgende toe aan de verbindingsreeks:

TrustServerCertificate=True

SQL Server maakt een zelfondertekend certificaat als u er geen installeert om te gebruiken, maar het wordt niet vertrouwd door de beller omdat het niet CA-ondertekend is, tenzij u de verbindingsreeks laat weten standaard servercertificaat.

Op lange termijn raad ik aan gebruik te maken van Let’s Encryptom gratis een door een CA ondertekend certificaat van een bekende vertrouwde CA te krijgen en installeer het op de virtuele machine. Vergeet niet om het in te stellen om automatisch te vernieuwen. U kunt meer over dit onderwerp lezen in online SQL Server-boeken onder het onderwerp “Encryptiehiërarchie” en “Encryptie gebruiken zonder validatie”.


Antwoord 2, autoriteit 25%

Als u SQL Management Studio gebruikt, ga dan naar de verbindingseigenschappen en klik op "Vertrouwen op server gecertificeerd"
Als u SQL Management Studio gebruikt, ga dan naar de verbindingseigenschappen en klik op “Vertrouw op server gecertificeerd”


Antwoord 3, autoriteit 9%

Als u deze foutmelding ziet wanneer u probeert verbinding te maken via SSMS, voegt u TrustServerCertificate=Truetoe aan de aanvullende verbindingsparameters.


Antwoord 4

Als u toegang probeert te krijgen via gegevensverbindingen in Visual Studio 2015, en de bovenstaande fout krijgt, ga dan naar Geavanceerd en stel
TrustServerCertificate=True
om de fout te laten verdwijnen.


Antwoord 5

Hoewel het algemene antwoord op zich correct was, vond ik het niet ver genoeg gaan voor mijn probleem met de wizard Importeren en exporteren van SQL Server. Ervan uitgaande dat u een geldige (en automatische) aanmelding op basis van Windows Security heeft:

ConnectionString

Data Source=localhost; 
Initial Catalog=<YOUR DATABASE HERE>; 
Integrated Security=True; 
Encrypt=True; 
TrustServerCertificate=True; 
User Instance=False

Dat kan uw volledige ConnectionStringzijn (allemaal op één regel), of u kunt die waarden afzonderlijk toepassen op hun velden.


Antwoord 6

Ik kreeg dit probleem tijdens het importeren van Excel-gegevens in SQLDatabase via SSMS. De oplossing is om TrustServerCertificate = Truein te stellen in het beveiligingsgedeelte


Antwoord 7

Heb hetzelfde probleem ondervonden bij het openen van SQLServer vanuit IIS. TrustServerCertificate=True heeft niet geholpen.

Kan een opmerking in MS-documenten zien: Zorg ervoor dat de SQLServer-serviceaccount toegang heeft tot het TLS-certificaat dat u gebruikt. (NT Service\MSSQLSERVER)

Open persoonlijke winkel en klik met de rechtermuisknop op het certificaat -> privésleutels beheren -> Voeg het SQL-serviceaccount toe en geef volledige controle.

Start de SQL-service opnieuw. Het werkte.


Antwoord 8

Ik kwam deze fout tegen toen ik de profiler probeerde uit te voeren, ook al had mijn verbinding het Trust-servercertificaat gecontroleerd en ik heb TrustServerCertificate=Truetoegevoegd aan de sectie Geavanceerd. Ik veranderde naar een instantie van SSMS die als beheerder werd uitgevoerd en de profiler begon zonder probleem. (Ik had eerder ontdekt dat wanneer mijn verbindingen, zelfs met lokaal, veel tijd nodig hadden om verbinding te maken, het hielp als beheerder).


Antwoord 9

Voor degenen die het antwoord TrustServerCertificate=Trueniet leuk vinden, als u voldoende toegang heeft, kunt u het SQL Server-certificaat exporteren en installeren vanaf waar u verbinding probeert te maken. Dit werkt waarschijnlijk niet voor een door SQL Server zelf gegenereerd certificaat, maar als je iets als New-SelfSignedCertificateu kunt MMC gebruiken om het certificaat te exporteren en vervolgens MMC op de client om het te importeren.

Op SQL Server:

  • Voeg in MMC het certificaat Snap-In toe
  • Blader naar Certificaten > Persoonlijk > Certificaat
  • Selecteer het nieuwe certificaat, klik met de rechtermuisknop en selecteer Alle taken > Privésleutels beheren (deze stap en het volgende maken deel uit van het laten werken van de sleutel met SQL-server)
  • Voeg de identiteit toe waarop SQL Server wordt uitgevoerd (zoek de identiteit op in Services als u twijfelt) met de machtiging LEZEN.
  • Selecteer het nieuwe certificaat, klik met de rechtermuisknop en selecteer Alle taken > Exporteren…
  • Gebruik standaardinstellingen en sla op als een bestand.

Op de klant:

  • Gebruik MMS met dezelfde modulekeuzes en in Certificaten > Trusted Root Certification Authorities klik met de rechtermuisknop op Certificaten en selecteer Alle taken > Importeren…
  • Importeer het eerder geëxporteerde bestand

(Ik deed alles op dezelfde server en had nog steeds problemen met klagen over SSMS totdat ik de SQL-instantie opnieuw opstartte. Daarna kon ik versleuteld verbinding maken zonder dat het selectievakje Vertrouwen… was aangevinkt)


Antwoord 10

Hetzelfde kan worden bereikt vanaf de sms-client zelf. Open gewoon de sms, voer de servernaam in en zorg er vervolgens voor dat bij opties onder het kopje verbindingseigenschappen het servercertificaat is aangevinkt.


Antwoord 11

Ik kreeg dezelfde foutmelding toen ik verbinding probeerde te maken met de MS SQL Server-instantie die wordt gehost op Google Cloud Platform met behulp van SSMS met een niet-aangevinkt Trust-servercertificaat op het tabblad Verbindingseigenschappen. Ik heb het certificaat kunnen vertrouwen door de door de GCP verstrekte certificaatautoriteit te importeren in de lijst met vertrouwde basiscertificeringsinstanties van mijn lokale computer.

Lees de volledige beschrijving en resolutie hier .

Other episodes