MySQL mit SSL - Übergabe der Parameter an Jameica?

nur noch einen kleinen Schritt vom Ziel entfernt...

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 9
Dabei seit: 01 / 2014
Betreff:

MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 03.01.2014 - 16:31 Uhr  ·  #1
Liebe Forenmitglieder, lieber willuhn,

erst einmal herzlichen Dank für die tollen Programme. Super, dass es so etwas kostenlos gibt! Ich versuche nun schon seit einer Woche, eine sichere Verbindung zu einem MySQL Server herzustellen, von welchem ich das Serverzertifikat herunterladen kann, welcher SSL unterstütz, aber auf welchen ich keine eigenen Zertifikate hochladen kann. Ich versuche, mit SSL keine Authentifizerung zu erreichen, sondern nur eine Verschlüsselung der zu übertragenden Daten. Ich habe alle Hilfeseiten und Beschreibungen im Internet durchgelesen und bin jetzt auch so weit, dass ich mit einem selbstgeschriebenen HelloWorld Javaprogramm per JDBC SSL gesichert auf die Datenbank zugreifen kann. Der SSL-gesicherte Zugriff über MySQL Workbench funktioniert ebenfalls.

Was mir nicht klar ist, ist welche Schritte ich jetzt unternehmen muss, damit auch jameica (welches ja ebenfalls ein Javaprogramm ist), mit den gleichen Parametern SSL gesichert zugreifen kann. Ich habe den Verdacht, dass Jameica versucht, aus einer Art eigenem Keystore ein Zertifikat an den Server zu übermitteln, der dieses dann ablehnt. Ich möchte einfach nur, dass Jameica das Serverzertifikat verifiziert und dann die Verbindung verschlüsselt.

Kann mir jemand sagen, wie ich das erreichen kann?

Hier sind die Schritte, die ich bisher durchgeführt habe:

  • Download des Serverzertifikats von http://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem
  • Code
    keytool -import -alias myqlServerCACert -file mysql-ssl-ca-cert.pem -keystore truststore
    , beliebiges Passwort eingeben und wiederholen. Erzeugt Datei truststore
  • Download des Java JDK
  • Erzeugen der Datei HelloWorld.java mit einem Texteditor und folgendem Inhalt:
    Code
    import java.sql.*;

    public class HelloWorld{
    public static void main(String args[]){
    System.out.println("Starting program");
    try {
    //Register the JDBC driver for MySQL.
    Class.forName("com.mysql.jdbc.Driver");

    String url =
    "jdbc:mysql://server:3306/dbname?useSSL=true&requireSSL=true";

    Connection con =
    DriverManager.getConnection(
    url,"javatestuser", "secretpassword");

    //Display URL and connection information
    System.out.println("URL: " + url);
    System.out.println("Connection: " + con);

    con.close();
    } catch(Exception ex){
    ex.printStackTrace();
    }
    }
    }

    Hierbei server, dbname, javatestuser und secretpassword an die Daten des Servers anpassen.
  • Die Datei mit
    Code
    javac HelloWorld.java
    kompilieren
  • Datei mit
    Code
    java -Djavax.net.ssl.trustStore="path\to\truststore" -Djavax.net.ssl.trustStorePassword="mysecrettruststorepassword" -Djavax.net.debug=all -classpath ".;path\to\mysql-connector-java-5.0.7-bin.jar" HelloWorld
    ausführen. Es wird korrekt per SSL verbunden und die URL und die Connection ausgegeben. Bis hierhin geht alles gut.
  • Nun versuche ich, Jameica mit denselben Paramtern aufzurufen. Dazu habe ich die Zugangsdaten in die Datei de.willuhn.jameica.hbci.rmi.HBCIDBService.properties eingetragen und diese im Unterverzeichnis cfg gespeichert. Dann Jameica aufgerufen mit:
    Code
    java -Djavax.net.ssl.trustStore="path\to\truststore" -Djavax.net.ssl.trustStorePassword="mysecrettruststorepassword" -Djavax.net.debug=all -Xmx256m -jar jameica-win32.jar -f "path\to\jameica\data" %1 %2 %3 %4
    . Diesen Befehl habe ich mir in diesem Forum zusammengesucht, leider konnte ich die dort erwähnte .bat-Datei für Windows nirgends im jameica/hibiscus-Paket mehr finden, sondern nur noch kompilierte exe-Dateien.
  • Leider bekomme ich von Jameica den Fehler:
    Code
    [Fri Jan 03 15:10:40 CET 2014][ERROR][de.willuhn.jameica.plugin.PluginLoader.init] unable to init plugin hibiscus: Hibiscus-Datenbank konnte nicht initialisiert werden.

    connection to database.jdbc:mysql://[servercutout]:3306/[dbcutout]?useUnicode=Yes&characterEncoding=ISO8859_1&useSSL=true failed; nested exception is: 
      com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

    ** BEGIN NESTED EXCEPTION ** 

    com.mysql.jdbc.CommunicationsException
    MESSAGE: Communications link failure due to underlying exception: 

    ** BEGIN NESTED EXCEPTION ** 

    javax.net.ssl.SSLException
    MESSAGE: Unsupported record version Unknown-0.0

    STACKTRACE:

    javax.net.ssl.SSLException: Unsupported record version Unknown-0.0
      at sun.security.ssl.InputRecord.readV3Record(Unknown Source)
      at sun.security.ssl.InputRecord.read(Unknown Source)
      at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
      at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
      at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
      at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
      at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:72)
      at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:3982)
      at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1293)
      at com.mysql.jdbc.Connection.createNewIO(Connection.java:2748)
      at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
      at de.willuhn.datasource.db.MyDriver.connect(MyDriver.java:87)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at de.willuhn.datasource.db.DBServiceImpl.createConnection(DBServiceImpl.java:177)
      at de.willuhn.datasource.db.DBServiceImpl.getConnection(DBServiceImpl.java:126)
      at de.willuhn.jameica.hbci.server.HBCIDBServiceImpl.getConnection(HBCIDBServiceImpl.java:145)
      at de.willuhn.jameica.hbci.server.HBCIDBServiceImpl.install(HBCIDBServiceImpl.java:167)
      at de.willuhn.jameica.hbci.HBCI$2.call(HBCI.java:135)
      at de.willuhn.jameica.hbci.HBCI.call(HBCI.java:336)
      at de.willuhn.jameica.hbci.HBCI.install(HBCI.java:131)
      at de.willuhn.jameica.plugin.PluginLoader.initPlugin(PluginLoader.java:375)
      at de.willuhn.jameica.plugin.PluginLoader.init(PluginLoader.java:243)
      at de.willuhn.jameica.services.PluginService.init(PluginService.java:42)
      at de.willuhn.boot.BootLoader.resolve(BootLoader.java:139)
      at de.willuhn.boot.BootLoader.resolve(BootLoader.java:119)
      at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:72)
      at de.willuhn.jameica.system.Application.init(Application.java:106)
      at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
      at de.willuhn.jameica.Main.main(Main.java:78)

    ** END NESTED EXCEPTION **

    Last packet sent to the server was 1216 ms ago.

    STACKTRACE:

    com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

    ** BEGIN NESTED EXCEPTION ** 

    javax.net.ssl.SSLException
    MESSAGE: Unsupported record version Unknown-0.0

    STACKTRACE:

    javax.net.ssl.SSLException: Unsupported record version Unknown-0.0
      at sun.security.ssl.InputRecord.readV3Record(Unknown Source)
      at sun.security.ssl.InputRecord.read(Unknown Source)
      at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
      at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
      at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
      at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
      at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:72)
      at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:3982)
      at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1293)
      at com.mysql.jdbc.Connection.createNewIO(Connection.java:2748)
      at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
      at de.willuhn.datasource.db.MyDriver.connect(MyDriver.java:87)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at de.willuhn.datasource.db.DBServiceImpl.createConnection(DBServiceImpl.java:177)
      at de.willuhn.datasource.db.DBServiceImpl.getConnection(DBServiceImpl.java:126)
      at de.willuhn.jameica.hbci.server.HBCIDBServiceImpl.getConnection(HBCIDBServiceImpl.java:145)
      at de.willuhn.jameica.hbci.server.HBCIDBServiceImpl.install(HBCIDBServiceImpl.java:167)
      at de.willuhn.jameica.hbci.HBCI$2.call(HBCI.java:135)
      at de.willuhn.jameica.hbci.HBCI.call(HBCI.java:336)
      at de.willuhn.jameica.hbci.HBCI.install(HBCI.java:131)
      at de.willuhn.jameica.plugin.PluginLoader.initPlugin(PluginLoader.java:375)
      at de.willuhn.jameica.plugin.PluginLoader.init(PluginLoader.java:243)
      at de.willuhn.jameica.services.PluginService.init(PluginService.java:42)
      at de.willuhn.boot.BootLoader.resolve(BootLoader.java:139)
      at de.willuhn.boot.BootLoader.resolve(BootLoader.java:119)
      at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:72)
      at de.willuhn.jameica.system.Application.init(Application.java:106)
      at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
      at de.willuhn.jameica.Main.main(Main.java:78)

    ** END NESTED EXCEPTION **

    Last packet sent to the server was 1216 ms ago.
      at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:87)
      at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:3982)
      at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1293)
      at com.mysql.jdbc.Connection.createNewIO(Connection.java:2748)
      at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
      at de.willuhn.datasource.db.MyDriver.connect(MyDriver.java:87)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at de.willuhn.datasource.db.DBServiceImpl.createConnection(DBServiceImpl.java:177)
      at de.willuhn.datasource.db.DBServiceImpl.getConnection(DBServiceImpl.java:126)
      at de.willuhn.jameica.hbci.server.HBCIDBServiceImpl.getConnection(HBCIDBServiceImpl.java:145)
      at de.willuhn.jameica.hbci.server.HBCIDBServiceImpl.install(HBCIDBServiceImpl.java:167)
      at de.willuhn.jameica.hbci.HBCI$2.call(HBCI.java:135)
      at de.willuhn.jameica.hbci.HBCI.call(HBCI.java:336)
      at de.willuhn.jameica.hbci.HBCI.install(HBCI.java:131)
      at de.willuhn.jameica.plugin.PluginLoader.initPlugin(PluginLoader.java:375)
      at de.willuhn.jameica.plugin.PluginLoader.init(PluginLoader.java:243)
      at de.willuhn.jameica.services.PluginService.init(PluginService.java:42)
      at de.willuhn.boot.BootLoader.resolve(BootLoader.java:139)
      at de.willuhn.boot.BootLoader.resolve(BootLoader.java:119)
      at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:72)
      at de.willuhn.jameica.system.Application.init(Application.java:106)
      at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
      at de.willuhn.jameica.Main.main(Main.java:78)

    ** END NESTED EXCEPTION **

    Last packet sent to the server was 1217 ms ago.

  • Den selben Fehler hatte ich bekommen, wenn ich mein selbstgeschriebens Javaprogramm mit den zusätzlichen Parametern
    Code
    -Djavax.net.ssl.keyStore="path\to\keystore" -Djavax.net.ssl.keyStorePassword="keystorepassword"
    aufgerufen hatte, der keystore wurde zuvor mit dem Befehl
    Code
    genkey -keyalg rsa -alias mysqlClientCertificate -keystore keystore
    erzeugt.


Über einen Rat/Hinweis in die richtige Richtung, wie ich Jameica/Hibiscus aufrufen kann, so dass keine Authentifizierung sondern nur Verschlüsselung über SSL stattfindet, wäre ich euch sehr dankbar!

Ich würde das Ergebnis dann auch wieder hier posten. Es könnte ja für mehrere Benutzer interessant sein, wenn man Jameica/Hibiscus/JVerein mit den recht günstigen MySQL-Datenbanken von Amazon benutzen könnte. Wie gesagt, ich habe das Gefühl, dass nur noch ein sehr kleiner Schritt fehlt!

Im Voraus vielen Dank für eure Hilfe! Viele Grüße
Stephan
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10544
Dabei seit: 03 / 2005
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 03.01.2014 - 16:42 Uhr  ·  #2
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 9
Dabei seit: 01 / 2014
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 03.01.2014 - 17:18 Uhr  ·  #3
Nein, leider nicht, denn ich kann ja das Jameica Zertifikat nicht in den MySQL-Server importieren, da ich ja keinen Schreibzugriff auf einen Ordner des Servers habe. Deshalb kann der MySQL-Server auch Jameica nicht identifizieren.

Soll/muss er ja aber auch nicht, bzw. in diesem Fall kann er das eben nicht. Für mich würde es einfach schon reichen, wenn ich den Datenverkehr verschlüsseln kann. Das funktioniert ja auch mit dem Javabeispiel, solange ich keinen eigenen keystore zur Verfügung stelle. Ich habe den Verdacht, dass der Keystore von Jameica nicht leer ist. Daher wird ein Clientzerfikat übermittelt und dieses dann nicht akzeptiert. Ist das richtig? Kann ich das irgendwie abstellen?

Die wichtigste Frage wäre erstmal, ob mein zusammengestellter Befehl korrekt ist und der vielzitierten .bat-Datei zum Start unter Windows entspricht.

Vielen Dank schonmal für die schnelle Rückmeldung!
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 9
Dabei seit: 01 / 2014
Betreff:

Mögliche Lösung? MySQL Treiber aktualisieren

 · 
Gepostet: 05.01.2014 - 16:20 Uhr  ·  #4
Lieber Willuhn, liebe alle,

ich habe mittlerweile geschafft, das Problem weiter einzugrenzen.
  • Ich habe es geschafft, mit Open Office Base über eine SSL JDBC Verbindung auf die Amazon RDS MySQL Datenbank zuzugreifen. Hierzu habe ich die Anleitung von http://www.oooforum.org/forum/viewtopic.phtml?t=80111 befolgt, hierbei ist zu beachten, dass ich die beiden -Djavax...-Einträge für die keystores nicht benötigt habe, sondern nur die für die truststores. Außerdem dürfen bei OpenOffice Base (Version 4) unter Windows7 das Passwort und auch der Pfad zum truststore nicht in Anführungszeichen eingeschlossen werden.
  • Unter http://dev.mysql.com/doc/refma…rties.html im Abschnitt "Security" sind sechs neue Parameter aufgeführt, welche in der URL zum Aufbau der JDBC-Verbindung benutzt werden können: clientCertificateKeyStoreUrl, clientCertificateKeyStoreType, clientCertificateKeyStorePassword, trustCertificateKeyStoreUrl, trustCertificateKeyStoreType, trustCertificateKeyStorePassword, welche für den MySQL Connector/J ab Version 5.10 verfügbar sind (im Moment ist in Jameica noch die Version 5.0.7 eingebunden). Mit meinem selbstgeschriebenen Testprogramm (siehe oben), lässt sich damit eine Verbindung einfach mit
    Code
    java -Djavax.net.debug=ssl,trustmanager -classpath ".;path\to\mysql-connector-java-5.1.28-bin.jar" HelloWorld
    aufbauen, ohne jegliche -Djavax...-Einträge in der Kommandozeile angeben zu müssen. Die Zeile String url muss dann einfach nur lauten:
    Code
    String url = "jdbc:mysql://<server>:3306/<dbname>?useSSL=true&requireSSL=true&trustCertificateKeyStorePassword=<password>&trustCertificateKeyStoreUrl=file:<pathtotruststore>";
    , wobei unter Windows der Pfad zum Truststore immer mit doppeltem statt einfachem Backslash angegeben werden muss.
  • Leider habe ich es nicht geschafft, die alte jar-Datei durch die neue jar-Datei in Jameica zu ersetzen. Kann mir jemand sagen, wie das geht?
  • Eine weitere interessante Option könnte der MariaDB JDBC Connector sein, welcher auch für MySQL funktioniert, beides ist in http://stackoverflow.com/quest…sl-problem erklärt. Dort gibt es eine neue Version, in welcher man einfach nur den Pfad zum vom Server heruntergeladenen Zertifikat angibt und man braucht per Hand gar keine Zertifikate mehr in einen truststore importieren. Willuhn, wäre das eine nützliche Option?

Über Hilfe, wie man die Connector-Datei aktualisieren kann, würde ich mich sehr freuen!

Viele Grüße und einen schönen Sonntag Abend

Stephan
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10544
Dabei seit: 03 / 2005
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 05.01.2014 - 18:30 Uhr  ·  #5
Der JDBC-Treiber befindet sich in lib/mysql. Ersetze den doch einfach gegen deine Version. Notfalls halt sogar mit dem selben Dateinamen.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 9
Dabei seit: 01 / 2014
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 05.01.2014 - 20:22 Uhr  ·  #6
Lieber willuhn,

vielen Dank für Deine Rückmeldung, es hat funktioniert. Ich kann also nun bestätigen, dass es möglich ist, eine über SSL verschlüsselte (aber nicht authentifizierte) Verbindung zur MySQL Datenbank von Amazon RDS aufzubauen (Im kleinsten Angebot sind die Datenbanken für ein Jahr kostenlos, danach je nach Benutzung, so weit ich das richtig verstanden habe, auch recht günstig).

Vorgehensweise unter Windows7:
  • Einrichten eines Kontos und einer DB Instance mit zwei Schemata (=Datenbanken) mit den Namen jverein und hibiscus. Anlegen von zwei Usern jvereinuser und hibiscususer mit Zugriff nur auf diese Datenbanken und dem Zwang, sich per SSL zu verbinden (in diesem Fall REQUIRE SSL und nicht REQUIRE X509 (siehe http://dev.mysql.com/doc/refman/5.7/en/grant.html). Einrichten einer Security Gruppe so dass der externe Zugriff auf den MySQL-Server möglich ist (IP-Range 0.0.0.0/0 ermöglicht den Zugriff von beliebigen IP-Adressen)
  • Download des Serverzertifikats von http://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem nach D:\mysql-ssl-ca-cert.pem
  • Die Administration der DB Instance (inklusive Datenbanken und Benutzer) kann z.B. sehr bequem mit dem Tool MySQL Workbench http://dev.mysql.com/downloads/tools/workbench/ durchgeführt werden. Auch das kann unter Einbinden des Serverzertifikats bereits per SSL geschehen.
  • Mit MySQL Workbench kann auch die SQL-Datei aus dem jameica-Unterordner plugins\hibiscus\sql\mysql-create.sql ausgeführt werden, um die Datenbankstruktur für hibiscus zu erzeugen.
  • Erzeugen eines Truststores D:\truststore und Import des gerade heruntergeladenen Serverzertifikats in denselben, hierbei kann das Passwort frei gewählt werden, z.B. testpasswort:
    Code
    keytool -import -alias amazonMysqlServerCACert -file D:\mysql-ssl-ca-cert.pem -keystore D:\truststore

  • Herunterladen und installieren des offiziellen MySQL JDBC Connector/J von http://dev.mysql.com/downloads/connector/j/
  • Die bei der Installation erzeugte Datei C:\Program Files (x86)\MySQL\MySQL Connector J\mysql-connector-java-5.1.28-bin.jar muss in das jameica\lib\mysql - Verzeichnis kopiert werden. Die dort vorhandene Datei mysql-connector-java-5.0.7-bin.jar muss gelöscht werden.
  • Im Verzeichnis jameica muss manuell ein Verzeichnis cfg erstellt werden, und in diesem zwei Dateien, de.jost_net.JVerein.rmi.JVereinDBService.properties und de.willuhn.jameica.hbci.rmi.HBCIDBService.properties erstellt werden. Diese müssen die in http://willuhn.de/wiki/doku.php?id=support:mysql und http://www.jverein.de/dokumentationmysql.php aufgeführten Inhalte besitzen.
  • Um die ab der MySQL Connector/J Version 5.1 verfügbaren neuen Parameter auszunutzen, welche den für die MySQL-Verbindung zu nutzenden Truststore in der URL definieren, muss in beiden Dateien an die Zeile database.driver.mysql.jdbcurl=... noch zusätzlich die folgende Zeichenkette angehängt werden, wobei das Passwort dasselbe sein muss, welches in Punkt 5 gewählt wurde (Leerzeichen im Pfad können einfach als solche eingegeben werden, Backslashs müssen doppelt eingegeben werden):
    Code
    &useSSL\=true&requireSSL\=true&trustCertificateKeyStorePassword\=testpasswort&trustCertificateKeyStoreUrl\=file\:D:\\truststore

  • Nun einfach Jameica starten, die beiden Plugins Hibiscus und JVerein nacheinander aus dem Pluginrepository installieren und die eigenen Finanzen bzw. den eigenen Verein dezentral verwalten. Mit MySQL Workbench können z.B. regelmäßig Sicherungen der beiden Datenbanken vorgenommen werden, über den Datenbankmanager von Amazon RDS ist das ebenfalls möglich (Stichwort Snapshot).

Willuhn, vielen Dank für das tolle Programm und den tollen Support!

Stephan
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10544
Dabei seit: 03 / 2005
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 05.01.2014 - 20:29 Uhr  ·  #7
Prima!
BTW: Du kannst auch Olaf zu mir sagen, Willuhn ist mein Nachname ;)
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 9
Dabei seit: 01 / 2014
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 14.01.2014 - 11:32 Uhr  ·  #8
Hallo Olaf,

gerne, ich war mir nicht sicher, ob ihr euch hier mit richtigen Namen ansprecht oder Pseudonymen ;-) Kannst Du mir erklären, ob ich den JDBC-Treiber von MySQL einfach durch ersetzen durch den JDBC-Treiber von MariaDB ersetzten kann? Er sollte voll kompatibel sein, kann aber direkt das Server-Zertifikat einlesen, man müsste also nicht extra noch einen Truststore erzeugen und das Zertifikat dorthin einlesen. Ich habe mal die jar-Datei geöffnet und der einzige Unterschied, den ich auf Anhieb gesehen habe, ist der andere Name des ersten Unterordners und in den Meta-Informationen. Kennst Du Dich da aus? Hier ist der Link zur Dokumentation des Treibers: https://mariadb.com/kb/en/about-the-mariadb-java-client/, der Interessante Parameter ist der &sslServerCert=classpath:relative/cert.pem.

Vielen Dank und viele Grüße
Stephan
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 9
Dabei seit: 01 / 2014
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 04.01.2015 - 16:42 Uhr  ·  #9
Lieber Olaf,

die neue mysql-connector-java-5.1.28-bin.jar - Datei (mittlerweile gibt es schon neuere Versionen 5.1.34, ebenfalls herunterzuladen unter http://dev.mysql.com/downloads/connector/j/, dann "Select Platform: Platform Independent", "Download", "No thanks, just start my download.") hat sich bei mir bewährt, bei jeder Installation muss ich die alte jar Datei allerdings durch die neue jar-Datei ersetzen, besteht evtl. die Möglichkeit, dass Du diese neue Version mit Jameica gleich mitauslieferst?

Ein gutes neues Jahr 2015!

Viele Grüße
Stephan
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10544
Dabei seit: 03 / 2005
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 04.01.2015 - 23:13 Uhr  ·  #10
Hab die neue Treiber-Version 5.1.34 in Jameica uebernommen. Ist morgen im Nightly-Build.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 9
Dabei seit: 01 / 2014
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 10.01.2015 - 18:15 Uhr  ·  #11
Lieber Olaf,

vielen Dank für Deine schnelle Antwort und die Hilfe. Das ist wirklich sehr hilfreich!

Darf ich Dich noch einmal auf den MariaDB client ansprechen, der ein Serverzertifikat direkt und mit einem relativen Pfad einlesen könnte? Das würde die Anbindung an einen MySQL Server für die meisten glaube ich noch einmal sehr erleichtern und könnte Jameica/Hibiscus/JVerein vielleicht noch ein kleines Stück vorwärts bringen.

Er ist herunterzuladen von https://downloads.mariadb.org/client-java/1.1.7/, dann mariadb-java-client-1.1.7.jar, dann mariadb-java-client-1.1.7.jar, "download", "download" (ohne die Angabe von persönlichen Daten).

Auf https://mariadb.com/kb/en/mari…va-client/ steht jedoch folgender Hinweis: "Please note that the driver class provided by the MariaDB Client Library for Java Applications is not com.mysql.jdbc.Driver but org.mariadb.jdbc.Driver!"

Wäre es trotzdem möglich, diesen Treiber zu verwenden oder müsste man da die komplette Einbindung des Treibers neu schreiben?

Danke und viele Grüße
Stephan
Benutzer
Avatar
Geschlecht:
Beiträge: 7057
Dabei seit: 06 / 2008
Betreff:

Re: MySQL mit SSL - Übergabe der Parameter an Jameica?

 · 
Gepostet: 17.01.2015 - 09:31 Uhr  ·  #12
Gewählte Zitate für Mehrfachzitierung:   0