MySQL + SSL + QT

0

Witam. Używam QT 4.7.4 i MySQL (5.5.15). Mam problem. Zabrałem się za aplikację, która ma korzystać z MySQL. Chcę aby łączyła się z bazą za pomocą SSL, gdyż będą to głównie połączenia zdalne, bezpośrednio do bazy, i jeszcze przy użyciu wifi.
Pierwszym problemem była oczywiście kompilacja sterownika do MySQL pod QT tak pod MSVC2008 jak i MinGW. Ale spoko - dałem radę w niecałe 2 dni ;P.
Drugim problemem była konfiguracja(rekompilacja) serwera MySQL z obsługą SSL - też spoko - pół dnia :) .
Trzecim problemem jest to, że nie mogę się połączyć z MySQL z poziomu QT . Jak wyłącze opcję REQUIRE SSL, to wszystko jest w porządku(oprócz braku SSL). Dla utrudnienia dodam, że MySQL Workbench CE 5.2.34.2 łączy się z MySQL przy użyciu SSL bez problemów ( podaję tylko ścieżki do certyfikatów ). - no i tu wymiękam. Wiem, że MySQL jest ok, certyfikaty są OK, bo Workbench się łączy. Co więc jest nie tak ? Podaję poniżej mój kod.

  QSqlDatabase mysql = QSqlDatabase::addDatabase("QMYSQL");
  QVariant v = mysql.driver()->handle();
  qDebug() << v.typeName();
  if(v.isValid() || (qstrcmp(v.typeName(), "MYSQL*") == 0))
  {
    MYSQL *mysql_handle = 0;
    mysql_handle = reinterpret_cast<MYSQL*>(v.toByteArray().data());
    if(!mysql_handle) return;
    mysql_ssl_set(mysql_handle, "H:\\client-key.pem", "H:\\client-cert.pem", "H:\\ca-cert.pem", 0, 0 );
  }
  mysql.setHostName("192.168.23.92");
  if(!mysql.open("ppp", "ppp"))
  {
    qDebug() << mysql.lastError().text();
  }

Dodam, że używam wersji libmysql.lib z gotowej binarki mysql pod windowsa. Słyszałem, że tu może być problem. Jeśli tak, to bardzo proszę o link do źródeł, które kompilują się w miarę bez problemów na windowsie .

Dziękuję z góry.

0

Nie korzystam z takiej konfiguracji ale wpisałem hasło w google i wyskoczył mi taki post:
http://www.qtcentre.org/threads/35189-Problem-with-connecting-to-MySql-using-SSL
Jest tam obecne ustawianie parametru dla połączenia, a z tego co widzę to u Ciebie jest brak.

0

Przyznam się że pięć minut po opublikowaniu tego posta właśnie uświadomiłem sobie, że nie mam tego ustawienia. Dodałem tę linijkę i działa. Tylko ciekawi mnie dlaczego po usunięciu mysql_ssl_set, protokół SSL dalej działa ... Tego za bardzo nie rozumiem, bo nawet MySQL Workbench się bez certyfikatów nie chce podłączyć, a mój program się łączy... Dziwne. Sprawdzałem Wiresharkiem i szyfruje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1