Hi Leutz,
ich habe heute mehr oder weniger den halben Tag damit verbracht, eine SQL Abfrage + Antwort über mein Java-Test-Programm mittels SSL zu realisieren.
Da ich mich heute erst damit beschäftigt habe, habe ich leider keinerlei großes Hintergrundwissen bezüglich SSL.
Ich habe deshalb diverse Tutorials ausm Netz solange getestet, bis irgendwann irgendwas geklappt hat
Durch den User-Comment von Rahul Gupta konnte ich von der MySQL Seite alle nötigen .pem-Dateien erstellen.
Ein anschließender Test mit HeidiSQL, bestätigte mir, dass SSL eingerichtet ist und auch funktioniert. (konnte mich erfolgreich verbinden)
Dann wollte ich das ganze in Java einbauen und bin diesem Tutorial gefolgt.
keystore und truststore wurden erfolgreich erstellt und liegen jetzt auf D:\
Mein Testprogramm sieht wie folgt aus:
Wenn ich dieses jedoch ausführe, erhalte ich eine SQL Exception:
User und PW sind 100% korrekt.
Mit meinem HeidiSQL habe ich keine Probleme damit.
Ich vermute, dass es an der fehlerhaft eingebundenen SSL Verschlüsselung liegt.
Denn wenn ich im HeidiSQL die Zertifikate weglasse und versuche mich mit dem User einzuloggen, dann bekomm ich exakt den selben Fehler.
Nun die Frage: Wo steckt der doofe Fehler?
ich habe heute mehr oder weniger den halben Tag damit verbracht, eine SQL Abfrage + Antwort über mein Java-Test-Programm mittels SSL zu realisieren.
Da ich mich heute erst damit beschäftigt habe, habe ich leider keinerlei großes Hintergrundwissen bezüglich SSL.
Ich habe deshalb diverse Tutorials ausm Netz solange getestet, bis irgendwann irgendwas geklappt hat
Durch den User-Comment von Rahul Gupta konnte ich von der MySQL Seite alle nötigen .pem-Dateien erstellen.
Ein anschließender Test mit HeidiSQL, bestätigte mir, dass SSL eingerichtet ist und auch funktioniert. (konnte mich erfolgreich verbinden)
Dann wollte ich das ganze in Java einbauen und bin diesem Tutorial gefolgt.
keystore und truststore wurden erfolgreich erstellt und liegen jetzt auf D:\
Mein Testprogramm sieht wie folgt aus:
Java:
package mysqltest;
import java.sql.*;
public class Main
{
public static void main (String[] args)
{
Connection con = null;
try
{
String url = "jdbc:mysql://127.0.0.1:3306/test"+
"?verifyServerCertificate=false"+
"&useSSL=true"+
"&requireSSL=true";
String user = "ssluser";
String password = "goodsecret";
System.setProperty("javax.net.ssl.keyStore","D:/keystore");
System.setProperty("javax.net.ssl.keyStorePassword","hallo");
System.setProperty("javax.net.ssl.trustStore","D:/truststore");
System.setProperty("javax.net.ssl.trustStorePassword","hallo");
Class dbDriver = Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, user, password);
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
if (con != null)
{
try
{
con.close();
}
catch (Exception e){}
}
}
}
}
Wenn ich dieses jedoch ausführe, erhalte ich eine SQL Exception:
Code:
java.sql.SQLException: Access denied for user 'ssluser'@'localhost' (using password: YES)
User und PW sind 100% korrekt.
Mit meinem HeidiSQL habe ich keine Probleme damit.
Ich vermute, dass es an der fehlerhaft eingebundenen SSL Verschlüsselung liegt.
Denn wenn ich im HeidiSQL die Zertifikate weglasse und versuche mich mit dem User einzuloggen, dann bekomm ich exakt den selben Fehler.
Nun die Frage: Wo steckt der doofe Fehler?