Java에서 MySQL 8 연결 에러 - Establishing SSL connection without server's identity verification is not recommended.
MySQL 에 JDBC + SSL 로 연결시 서버 SSL 인증서(server SSL certificate) 검증을 해제하는 방법을 설명합니다.
증상
Java 에서 MySQL 8 에 연결하면 다음과 같은 예외가 발생합니다.
WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
CODE
원인
MySQL 이 8 로 업그레이드되면서 여러 가지 보안이 강화되었고 연결시 기본적으로 SSL 통신을 사용하도록 변경되었습니다.
메시지중에 다음 항목을 보면 SSL 통신시 서버 인증서를 검증할 수 없다는 내용이 있으며 이는 서버의 SSL 인증서가 Java 의 신뢰하는 인증서 목록에 없기때문입니다.
For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
CODE
조치
2가지 방법이 있는데 첫 번째 방법을 권장합니다.
1.서버 인증서 검증 끄기
SSL 을 사용하도록 설정하고 서버 인증서를 검증하는 옵션인 verifyServerCertificate 를 false 로 주어서 인증서 검증을 해제하면 됩니다.