MySql Conexão SSL com JAVA

12/08/2017

0

Prezados,

Gostaria de um código exemplo de como posso usar uma conexão SSL à um banco de dados MySql usando arquivos .pem para conexão, pois estou com um banco de dados que só aceita este tipo de conexão.

Atenciosamente.
João.
João Queiroz

João Queiroz

Responder

Post mais votado

14/08/2017

Olá João, tudo bem?

Acredito que a maior dificuldade nesse processo seja a geração das chaves, mas como um todo não é uma tarefa difícil. Você vai precisar do keytool, que vem na instalação do JDK e pode ser encontrado na pasta bin, além do openssl, que você terá que instalar. Visitando a documentação do MySQL eu resumi os passos na receita abaixo.

Geração do .pem:

keytool -import -alias mysqlServerCACert -file cacert.pem -keystore truststore


Conversão para DER:

openssl x509 -outform DER -in client-cert.pem -out client.cert


Importação do certificado:

keytool -import -file client.cert -keystore keystore -alias mysqlClientCertificate


Geração do certificado cliente/chave RSA:

keytool -genkey -keyalg rsa -alias mysqlClientCertificate -keystore keystore


No programa você informa a localização e senha dos arquivos:

System.setProperty("javax.net.ssl.keyStore","path_to_keystore_file");
System.setProperty("javax.net.ssl.keyStorePassword","password");
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
System.setProperty("javax.net.ssl.trustStorePassword","password");


Ou parametriza a inicialização da JVM:

-Djavax.net.ssl.keyStore=path_to_keystore_file
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=path_to_truststore_file
-Djavax.net.ssl.trustStorePassword=password


Além dos parâmetros usuais, você vai precisar da propriedade useSSL=true para o driver manager:

Properties properties = new Properties();
...
properties.setProperty("useSSL", "true");
...
Connection conn = DriverManager.getConnection(url, properties);


Espero que isso ajude ^^

Um abraço.

Estevão Dias

Estevão Dias
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar