我们需要在mysql rds实例上启用TLS1.1连接。我有一个控制台应用程序,用于测试与mysql RDS实例的连接。
与Infra团队进行了多次接触后,确认mysql实例正在使用TLSv1.1。请找到我在mysql工作台中运行的命令输出:
SHOW GLOBAL VARIABLES LIKE '%version%';
现在,这将验证服务器正在使用TLSv1.1。
建立连接的努力-工作台
一切正常
建立连接的努力-使用mysql.exe(server / bin /)
C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" -u serverusername -h xxxxxxx.xxxxxxxxxxxx.eu-west-1.rds.amazonaws.com dbname -p --ssl-mode=PREFERRED
C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" -u serverusername -h xxxxxxx.xxxxxxxxxxxx.eu-west-1.rds.amazonaws.com dbname-p --ssl-mode=DISABLED
询问密码并连接正常
因此,现在我们有足够的事实可以说,从此aws Vm中我们可以使用workbench和mysql.exe实用程序(均已启用SSL)连接到RDS实例
然后,接下来我们尝试使用控制台应用程序连接到相同的RDS实例,该控制台应用程序使用mysql团队提供的mysql连接器DLL。请在下面找到应用程序代码以及mysql连接器dll版本
代码:
static void Main(string[] args)
{
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
//ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
Console.WriteLine("making certficate connection");
string connMainOut = connMain();
Console.WriteLine(connMainOut.ToString());
Console.ReadLine();
}
private static string connMain()
{
try
{
MySqlConnection connection = new MySqlConnection(ConfigurationManager.AppSettings["conns"]);
connection.Open();
return connection.ToString();
}
catch (Exception ex)
{
Console.WriteLine("==============================");
Console.WriteLine("connMain" + ex.ToString());
Console.WriteLine("==============================");
return "null";
}
}
MySql连接器版本:
我的app.config看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="conns" value="SERVER=xxxxxxxx.xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com;
database=databasename;
user=username;
PASSWORD=password;
SslMode=PREFERRED;"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
它抛出此错误
现在使用SslMode = None;
现在SslMode = REQUIRED,我得到同样的错误
我们已经花了很多时间,但仍然无法使用TLS进行连接。如果需要更多信息,请告诉我。
答案 0 :(得分:0)
在错误日志中,它还会显示“收到的消息意外或格式错误”,这通常意味着服务器上的配置错误。 TLS 1.1不再被认为是安全的。
下载IISCrypto来查看“ Schannel”和“ Cipher Suites”选项卡,查看设置是否正确配置,并且进行更改后可以重新启动服务器。