title: Kettle, JDBC, MySQL, SSL: Could not Connetct to database
body: <p>I am trying to connect to a MySQL Database with SSL using a Client Certificate. I have created a truststore with the CA Certificate:</p>
  
  <pre><code>keytool -import -alias mysqlServerCACert -file ca.crt -keystore truststore
  </code></pre>
  
  <p>Then I created a keystore with my private key and my client certificate:</p>
  
  <pre><code>openssl pkcs12 -export -out bi.pfx -inkey bi.key -in bi.crt -certfile ca.crt
  openssl x509 -outform DER -in bi.pem -out bi.der
  keytool -importkeystore -file bi.der -keystore keystore -alias mysqlClientCertificate
  </code></pre>
  
  <p>I added useSSL=true and requireSSL=true to the jdbc URL and passed</p>
  
  <pre><code> -Djavax.net.ssl.keyStore=${db.keyStore}
   -Djavax.net.ssl.keyStorePassword=${db.keyStore.pwd}
   -Djavax.net.ssl.trustStore=${db.trustStore}
   -Djavax.net.ssl.trustStorePassword=${db.keyStore.pwd}
  </code></pre>
  
  <p>to the kettle transformation from the surrounding job. I still get "Could not create connection to database server".</p>
  
  <p>I can connect via SSL using the command line tool: </p>
  
  <pre><code> mysql --protocol=tcp -h myqlhost -P 3309 -u bi -p --ssl=on --ssl-ca=ca.crt --ssl-cert=bi.crt --ssl-key=bi.key db_name
  </code></pre>
  
  <p>Therefore my current guess is, that ther is an issue with the SSL Certificates.</p>
  
  <p>Is there a way to make the MySQL JDBC Driver tell me more details, what went wrong?</p>
  
  <p>Is my assumtion wrong, that kettle parameters can be used to set system properties? How do I do that instead then?</p>