운영체제/리눅스

Oracle Linux 8 외부 MYSQL 접속 시 SSL Connection 에러 해결 방법

김루노 2021. 12. 7. 18:46
반응형

OPENSSL 버전이 높아짐에 따라 기존 TLS v1 TLS v1.1 버전 통신을 할 수 없도록 허용 가능한 최소 프로토콜 기본값이 TLS v1.2로 변경되었습니다.

그래서 최신 OS가 아닌 구버전 OS에서 설치된 MYSQL 서버에 원격 접속 시

ERROR 2026 (HY000) : SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol 에러가 발생합니다.

이 경우 서버측 OPENSSL 버전이 낮아서 생기는 문제이긴하지만 당연히 서버측에서 해결하기엔 어려움이 있을 것으로 보입니다.

그래서 임시 방편으로 접속하는 클라이언트 측에서 OPENSSL 허용 가능한 최소 프로토콜을 TLS v1이나 TLS v1.1로 설정해주는 것으로 해결할 수 있습니다.

 

  OPENSSL TLS 통신 최소 프로토콜을 TLS v1로 변경해보자.

 

일단 openssl.cnf 를 서버에서 어떤 위치에 있는지 찾기 위해

find 명령어를 통하여 openssl.cnf 파일을 찾아줍시다.

find / -name openssl.cnf

명령어를 통해 openssl.cnf 파일을 찾으셨다면

vi 명령어로 해당 파일을 편집해줍시다.

 

오라클리눅스 8버전에서는 /etc/pki/tls/ 폴더에 openssl.cnf 파일이 있습니다.

vi /etc/pki/tls/openssl.cnf

 

* 주의 * 루트 계정으로 진행 해야함

vi 편집기로 openssl.cnf 파일을 들어오셨다면 위와 같이

내용이 표시되실 텐데요

 

# Load default TLS policy configuration

openssl_conf = default_modules

[ default_modules ]
ssl_conf = ssl_module

[ ssl_module ]
system_default = crypto_policy

 

[ default_modules ] 항목을 찾아줍시다.

해당 항목에 보시면 ssl_conf = ssl_module이라는 값이 있을텐데요

혹시나 ssl_conf = 이 값이 다른 값이라고하시면

해당 값으로 된 [ 해당값 ] 위치를 찾아주세요.

 

오라클리눅스8 에서는 기본값이 ssl_module 로 되어있습니다.

 

[ ssl_module ] 위치를 찾아줍시다.

 

 

 

[ ssl_module ] 위치로 이동하시면

system_default = crypto_policy 항목이 보이실텐데요.

그 아래에 MinProtocol = TLSv1 항목을 추가해줍시다.  ( 혹시 다른 항목이 있으면 그 아래에 )

 

최종적으로 편집된 문서는 위와 같습니다.

# Load default TLS policy configuration

openssl_conf = default_modules

[ default_modules ]
ssl_conf = ssl_module

[ ssl_module ]
system_default = crypto_policy
MinProtocol = TLSv1

문서 편집 후 :wq 로 꼭 저장하시기 바랍니다.

저장하셨다면 추가로 해주실 건 없습니다.

이제 다시 mysql 명령어로 외부 MYSQL 서버를 접속하시면 이상 없이 접속됩니다.

반응형