2016-10-05 4 views
0

Java Rest WebService을 사용하여 JDBC에 연결하려고합니다.SSL 기관 인증서가있는 Java MySQL 연결

처음에는 사용자 이름과 암호 및 추가 세부 정보가 포함 된 MySQL Workbench를 사용하여 성공적으로 연결되었습니다. "SSL에 대한 인증 기관 파일 경로"를 추가해야했습니다. 연결하여 사용할 수있었습니다. 원격 데이터베이스를 사용하십시오.

가 지금은 자바를 사용하여 연결하려고하고 내가 노력하고있는 방법이 system.getproperties

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

public class ConexaoBD { 
    // Define o Metodo de Conexao quando a classe � chamada 
    static { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
     } catch (ClassNotFoundException e) { 
      throw new RuntimeException(e); 
     } 
    } 

    public Connection obtemConexao() throws SQLException { 
     System.getProperties().setProperty("javax.net.ssl.trustStore","/mysqlcertificate.pem"); 
     return DriverManager.getConnection("jdbc:mysql://myHost", "myUsername", "myPassword");         
    } 
} 

나는에 대한 URL의 진정한 useSSL = 넣어 연구도 있지만 작동하지 않았거나, 나 또한 P .pem 프로젝트 패키지의 파일과 클래스 패키지 안에 있습니다 (파일을 넣어야하는 곳이 무엇인지 모르기 때문에).

연결하려면 어떻게해야합니까? 이 SSL이 없으면 데이터베이스가 연결을 거부하고 다음과 같이 다른 클래스에 연결하려고합니다.

Connection conn = null; 
Statement stm = null; 
try { 
    ConexaoBD bd = new ConexaoBD(); 
    conn = bd.obtemConexao(); 

아무도 도와 줄 수 있습니까?

답변

0

내 경우는 비슷했지만 동일하지는 않습니다. Workbench에서 MySQL에 연결할 수는 있지만 내 코드에서는 연결할 수 없습니다. Workbench에서 선택된 유일한 옵션은 사용 가능한 경우 useSSL입니다. 아래의 코드는 저에게 도움이되었습니다.

private String db_server = BaseMethods.getSystemData("db_server"); 
private String db_user = BaseMethods.getSystemData("db_user"); 
private String db_password = BaseMethods.getSystemData("db_password"); 

private void connectToDb() throws Exception { 
    String jdbcDriver = "com.mysql.jdbc.Driver"; 
    String dbUrl = "jdbc:mysql://" + db_server + 
     "?verifyServerCertificate=false" + 
     "&useSSL=true" + 
     "&requireSSL=true"; 
    System.setProperty(jdbcDriver, ""); 
    Class.forName(jdbcDriver).newInstance(); 

    Connection conn = DriverManager.getConnection(dbUrl, db_user, db_password); 
    Statement statement = conn.createStatement(); 
} 
관련 문제