20

I am trying to turn off ssl, to my local mysql database. But I cannot find the actual property in a spring application.properties file that would do this.

my current file is:

# ===============================
# = DATA SOURCE
# ===============================

# Set here configurations for the database connection

# Connection url for the database "test"
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# Username and password
spring.datasource.username = root
spring.datasource.password = blah

# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

# ===============================
# = JPA / HIBERNATE
# ===============================

# Use spring.jpa.properties.* for Hibernate native properties (the prefix is
# stripped before adding them to the entity manager).

# Show or not log for each sql query
spring.jpa.show-sql = true

# Hibernate ddl auto (create, create-drop, update): with "update" the database
# schema will be automatically updated accordingly to java entities found in
# the project
spring.jpa.hibernate.ddl-auto = update

# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

# Allows Hibernate to generate SQL optimized for a particular DBMS
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

I have tried spring.datasource.useSSl=false and that does not work. I have also tried spring.datasource.url = jdbc:mysql://localhost:3306/test&useSSL=false

Jens Schauder
  • 77,657
  • 34
  • 181
  • 348
SJC
  • 2,767
  • 4
  • 20
  • 31
  • 1
    You shouldn't need to do anything to turn off SSL as it's disabled by default ([you have to add `useSSL=true` to your JDBC url and configure several properties to enable it](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-using-ssl.html)). – Andy Wilkinson Feb 24 '16 at 10:01
  • 2
    @AndyWilkinson Thanks for the reply. I know about using `useSSL=true` which at a later time I will be using. However, my question was how do I add `useSSL=true/false` in a spring application.properties file. You cannot add it to the datasource.url which I have tried, see above. – SJC Feb 24 '16 at 10:22

4 Answers4

48

I fixed my issue with the below:

jdbc:mysql://localhost:3306/test?verifyServerCertificate=false&useSSL=false&requireSSL=false
Adam Michalik
  • 9,678
  • 13
  • 71
  • 102
Sanjay Mistry
  • 1,180
  • 8
  • 9
2

Shouldn't you be using '?' instead of '&'

This is yours

spring.datasource.url =jdbc:mysql://localhost:3306/test&useSSL=false

What I'm saying is

spring.datasource.url = jdbc:mysql://localhost:3306/test?useSSL=false
Subhajit Roy
  • 111
  • 3
  • 14
2

I don't like to pollute java options or system properties, which are useless in application containers in any case...

You can set SSL certificate for MySQL connection programmically with:

jdbc:mysql://example.com:3306/MYDB?verifyServerCertificate=true&useSSL=true&requireSSL=true&clientCertificateKeyStoreUrl=file:cert/keystore.jks&clientCertificateKeyStorePassword=123456&trustCertificateKeyStoreUrl=file:cert/truststore.jks&trustCertificateKeyStorePassword=123456

It is documented:

gavenkoa
  • 45,285
  • 19
  • 251
  • 303
0

If you still looking for that, then here is answear:

How to add datasource url query parameters as application.properties?

spring.datasource.hikari.data-source-properties.useSSL=false
Lukk17s
  • 986
  • 10
  • 11