Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Problem mit MySQL JDBC über SSL

Unterstützung für selbstsignierte Zertifikate wurde kürzlich zum MariaDB JDBC-Treiber hinzugefügt (der auch für die Verbindung zu MySQL funktioniert). Die neueste Version (1.1.3 zum Zeitpunkt des Verfassens dieses Artikels) ermöglicht es Ihnen auch, das Serverzertifikat direkt zur Laufzeit anzugeben, sodass Sie keine Schlüsselspeicher konfigurieren oder Zertifikate im Voraus importieren müssen.

Die beiden festzulegenden Eigenschaften sind useSSL und serverSslCert . Letzteres kann entweder das Zertifikat selbst (ein String-Wert) oder ein Pfad zu einer Datei sein, die das Zertifikat enthält (entweder vollständiger Pfad oder relativ zum Klassenpfad):

String url = "jdbc:mysql://" + host + ":" + port + "/" + database;
Properties info = new Properties();
info.setProperty("user", username);
info.setProperty("password", password);
info.setProperty("useSSL", "true");
info.setProperty("serverSslCert", "classpath:server.crt");
Connection conn = DriverManager.getConnection(url, info);

Ein vollständiges Beispiel zum Verbinden finden Sie hier:https://github.com/properssl /java-jdbc-mariadb