SSL을 사용하여 응용 프로그램에서 MySQL 연결을 보호하려고 시도하고 있습니다. 지금 현재로 가지고있는 관련 코드 :BasicDataSource를 사용하여 SSL을 사용하여 mysql에 보안 연결
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUsername(connectorConfig.getUser());
dataSource.setPassword(connectorConfig.getPassword());
String uri = connectorConfig.getConnectURI();
dataSource.setUrl(uri);
dataSource.setValidationQuery(getValidationQuery());
dataSource.setTestOnBorrow(true);
datasource.setDriverClassLoader(getClass().getClassLoader());
datasource.setDriverClassName("com.mysql.jdbc.Driver");
System.setProperty("javax.net.ssl.keyStore", "/Users/xx/xx/client.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "xx");
System.setProperty("javax.net.ssl.trustStore", "/Users/xx/xx/server.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "xx");
final DBI dbi = new DBI(datasource);
내가 데이터 소스 관리를위한 DBCP2 BasicDataSource 및 JDBI 쿼리를 실행하기 위해 사용하고 있습니다. 나는에서 MySQL 서버에 SSL 컨텍스트 매개 변수를 제공하는 가야합니까 방법에 대한
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
어떤 생각 : 나는 다음과 같은 오류로 MySQL 서버에 연결을 설정하는 동안 그러나, 위의 코드가 작동하지 않습니다 이 경우?
추신 : 저는 명령 줄에서 클라이언트 키 저장소를 사용하여 MySQL 서버에 연결할 수 있었기 때문에 SSL 설정이 정확하다고 생각합니다.
server.jks에 이미 서버 인증서가 있습니다. 디버그 모드를 사용하면 코드에 지정된 트러스트 스토어를 무시하고 대신이 경로를 찾습니다. /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/security/cacerts – seriousgeek