AWS RDS에서 생성한 mysql에 접속이 안될 경우


aws 상에서 서비스 구축 중 발생한 문제를 해결 하기 위해 구글링 하였으나 정확한 내용이 없어 기록으로 남깁니다 ***

오류상황

jdk version을 1.8 u292 에서 u312 으로 변경하고 나서 application 을 기동하였는데 exception을 발생시키고 MySQL에 접속이 불가한 상황 u292를 사용 하였을때는 정상 접속이 가능한 상황이었고 u312으로 변경 후 기존 application level의 코드 변경 없이 기동을 하였으나 아래와 같은 exception을 발생 하고 기동되지 않는 문제 발생

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

원인분석

Mysql으로 접속을 u292에서는 tls 1.1 으로 하였으나, u312 부터 tls 1.0, 1.1을 비활성화 하므로 생기는 문제 사실 log에서 아래와 같이 경고 하고 있었음

WARN: This connection is using TLSv1.1 which is now deprecated and will be removed in a future release of Connector/J.

해결방안

jdk u292 버젼 이상 부터 datasource url 설정에 아래와 같이 TLS 프로토콜 명시

jdbc:mysql://test.amazonaws.com:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&enabledTLSProtocols=TLSv1.2