encrypted database connection

m0rph5 years ago

Hello

My mariadb server use a self-signed certificate for a encrypted database connection, the encrypted connection works with a normal Database client.

The Traccar logs in var/log/syslog say

Aug 19 18:51:11 Tux01-Home traccar[1091]: Mon Aug 19 18:51:11 CEST 2019 WARN: Caught while disconnecting...
Aug 19 18:51:11 Tux01-Home traccar[1091]: EXCEPTION STACK TRACE:
Aug 19 18:51:11 Tux01-Home traccar[1091]: ** BEGIN NESTED EXCEPTION **
Aug 19 18:51:11 Tux01-Home traccar[1091]: javax.net.ssl.SSLException
Aug 19 18:51:11 Tux01-Home traccar[1091]: MESSAGE: closing inbound before receiving peer's close_notify
Aug 19 18:51:11 Tux01-Home traccar[1091]: STACKTRACE:
Aug 19 18:51:11 Tux01-Home traccar[1091]: javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:255)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:645)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:624)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at com.mysql.cj.protocol.a.NativeProtocol.quit(NativeProtocol.java:1319)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at com.mysql.cj.NativeSession.quit(NativeSession.java:182)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at com.mysql.cj.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:1750)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at com.mysql.cj.jdbc.ConnectionImpl.close(ConnectionImpl.java:720)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at com.zaxxer.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:138)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at com.zaxxer.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:447)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011at java.base/java.lang.Thread.run(Thread.java:834)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011Suppressed: java.net.SocketException: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt (Write failed)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011#011at java.base/java.net.SocketOutputStream.socketWrite0(Native Method)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011#011at java.base/java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011#011at java.base/java.net.SocketOutputStream.write(SocketOutputStream.java:150)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011#011at java.base/sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011#011at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:352)
Aug 19 18:51:11 Tux01-Home traccar[1091]: #011#011... 13 more
Aug 19 18:51:11 Tux01-Home traccar[1091]: ** END NESTED EXCEPTION **

My Config String

jdbc:mysql://Server:Porst/Database?serverTimezone=UTC&useSSL=true&verifyServerCertificate=false&allowMultiQueries=true&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=sql_mode=''</entry>

anyone an idea what I'm doing wrong

m0rph5 years ago
m0rph5 years ago

My solution

Download mysql-connector-java-8.0.17.jar
Copy to /opt/traccar/lib
Rename mysql-connector-java-8.0.15.jar eg. *.bak
Rename mysql-connector-java-8.0.17.jar to mysql-connector-java-8.0.15.jar
Restart Traccar
No more SSL Errors