Strawberry Perl и ошибка подключения TLS 1.2 с DBD:: mysql
Моя компания в настоящее время полагается на ActivePerl для реализации Windows, но пробует Strawberry Perl. Единственная реальная проблема, с которой мы столкнулись, — это доступ к MySQL, когда требуется TLS 1.2. Мы получаем ошибку «Не удается подключиться к БД: используемая версия TLS не соответствует минимальным требованиям для этого сервера. Пожалуйста, используйте более высокую версию TLS и повторите попытку».
База данных, к которой я пытаюсь подключиться, представляет собой базу данных Azure MySQL с установленным минимумом TLS 1.2.
Вот тестовое приложение, которое я использую в качестве тестового примера:
#!/usr/bin/perl
use DBI;
my $ssl = 1; ## 1 = on, 0 = off
my $driver='mysql';
my $database = 'testdatabase';
my $hostname = '<host>';
my $port = '3306';
my $dbuid = '<user>';
my $dbpwd = '<password>';
#DBI->trace(15);
if ($ssl == 1) {
$dbh = DBI->connect("DBI:$driver:$database;host=$hostname;port=$port","$dbuid","$dbpwd", {RaiseError => 0, mysql_ssl => 1, mysql_ssl_optional => 1}) or die ("Can't connect to DB: $DBI::errstr");
}
elsif ($ssl == 0) {
$dbh = DBI->connect("DBI:$driver:$database:$hostname","$dbuid","$dbpwd", {RaiseError => 0}) or die ("Can't connect to DB: $DBI::errstr");
}
print qq~
Connection Successful!
~;
Я подтвердил, что если я настрою экземпляр Azure MySQL для разрешения TLS 1.0 или TSL 1.1, тестовая программа успешно подключится, но не тогда, когда требуется TLS 1.2 (что в данном случае является нормативным требованием).
Я пробовал Windows 2016 и 2019 безрезультатно, и я использую последнюю доступную версию Strawberry. Я могу подключиться к другой базе данных с отключенным SSL, поэтому я знаю, что DBD::mysql существует и его можно использовать.
Я попытался специально включить TLS 1.2 в реестре. Насколько я понимаю, в более поздних версиях Windows больше нет необходимости, и это не решило проблему.
Я в растерянности и не знаю, как заставить это работать.