sql >> Database teknologi >  >> RDS >> Mysql

Brug af MySqlConnection (.NET) til SSL-forbindelse til MySql-server mislykkes fra visse klienter

Jeg fandt selv løsningen, mens jeg dissekere TLS-protokollen. Det viser sig, at klienten, der ikke virker i eksemplet ovenfor, sender mit klientcertifikat, mens han trykker; og den klient, der fungerer gør det ikke. Tilsyneladende er der alligevel etableret kryptering (jeg er ikke gået videre i TLS-protokollen), og sandsynligvis finder en certifikatudveksling/nøgleudveksling sted længere fremme.

For at få forbindelsen til at fungere, var det eneste, jeg skulle gøre, at ændre forbindelsesstrengen og fjerne alle Certificate*=nøgler. Især "Certificate Store Location=CurrentUser". Min nuværende, fungerende MySql SSL-forbindelsesstreng er:

server=xxx.yyy.zzz.uuu;database=whopper;user=Username;password=Secret;Pooling=false;SSL Mode=Required;Keepalive=60

Som en sidebemærkning, mens jeg dissekere kommunikationen, fandt jeg ud af, at Tamos CommView gør et bedre stykke arbejde end WireShark med at opsnappe og dissekere, mens han er på VPN-kommunikation. Måske på grund af WinPCaps manglende evne til at dissekere VPN-pakker under Windows 7 x64. TLS-dissektoren i CommView er også det, der virkelig hjalp mig med at finde problemet med håndtryk.

Også som en anden sidebemærkning. Al SSL/TLS-kommunikation i Windows håndteres af en DLL kaldet schannel.dll. Fuld logning på System EventLog for den dll kan aktiveres ved at oprette DWORD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging med værdien 7. Læs mere her:http://support.microsoft.com/kb/260729 .

For at få det til at fungere. Fjern ting.




  1. Vis SQL-fejlmeddelelse

  2. Brugerdefineret dato/klokkeslæt formatering i SQL Server

  3. Sådan tilføjes en separator til en sammenkædet streng i SQL Server - CONCAT_WS()

  4. Generer serier af datoer - brug datotype som input