sql >> Databáze >  >> RDS >> Mysql

Použití MySqlConnection (.NET) k připojení SSL k serveru MySql selže z určitých klientů

Řešení jsem našel sám při rozebírání protokolu TLS. Ukázalo se, že klient, který ve výše uvedeném příkladu nefunguje, odesílá můj klientský certifikát při handshakingu; a klient, který funguje to nedělá. Šifrování je zřejmě stejně zavedeno (nepokračoval jsem v protokolu TLS) a pravděpodobně dále probíhá výměna certifikátů/klíčů.

Aby připojení fungovalo, vše, co jsem musel udělat, bylo změnit řetězec připojení a odstranit všechny klíče Certificate*=. Konkrétně "Certificate Store Location=CurrentUser". Můj aktuální funkční řetězec připojení SSL MySql je:

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

Jako vedlejší poznámku jsem při pitvě komunikace zjistil, že Tamos CommView odvádí lepší práci než WireShark při zachycování a pitvě při komunikaci VPN. Možná kvůli neschopnosti WinPCaps pitvat VPN pakety pod Windows 7 x64. Také disektor TLS v CommView je to, co mi opravdu pomohlo najít problém s handshakingem.

Také jako druhá poznámka. Veškerou komunikaci SSL/TLS ve Windows zajišťuje knihovna DLL s názvem schannel.dll. Úplné přihlášení do System EventLog pro tuto knihovnu dll lze povolit vytvořením DWORD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging s hodnotou 7. Přečtěte si více zde:http://support.microsoft.com/kb/260729 .

Aby to fungovalo. Odstraňte věci.




  1. MySQL:Kód chyby:1118 Velikost řádku je příliš velká (> 8126). Změna některých sloupců na TEXT nebo BLOB

  2. Záporný posun limitu v mysql

  3. Výhody MySQLi oproti MySQL

  4. Obsahuje MS SQL Server hranice rozsahu?