sql >> Base de Datos >  >> RDS >> Mysql

El uso de MySqlConnection (.NET) para la conexión SSL al servidor MySql falla en ciertos clientes

Encontré la solución yo mismo mientras analizaba el protocolo TLS. Resulta que el cliente que no funciona en el ejemplo anterior está enviando el certificado de mi cliente mientras se realiza el protocolo de enlace; y el cliente que sí funciona no hace eso Aparentemente, el cifrado se establece de todos modos (no he continuado con el protocolo TLS), y probablemente se realice un intercambio de certificados/clave más adelante.

Para que la conexión funcionara, todo lo que tenía que hacer era cambiar la cadena de conexión y eliminar todas las claves Certificate*=. En particular, "Ubicación del almacén de certificados =Usuario actual". Mi cadena de conexión MySql SSL actual y en funcionamiento es:

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

Además, como nota al margen, al diseccionar la comunicación, descubrí que Tamos CommView hace un mejor trabajo que WireShark para interceptar y diseccionar comunicaciones VPN. Quizás debido a la incapacidad de WinPCaps para diseccionar paquetes VPN en Windows 7 x64. Además, el disector TLS en CommView es lo que realmente me ayudó a encontrar el problema del protocolo de enlace.

Además, como segunda nota al margen. Toda la comunicación SSL/TLS en Windows es manejada por una DLL llamada schannel.dll. El inicio de sesión completo en System EventLog para ese dll se puede habilitar creando el DWORD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging con el valor 7. Lea más aquí:http://support.microsoft.com/kb/260729 .

Para que funcione. Quitar cosas.