본문 바로가기
클라우드/AWS

[RDS] SSL 인증서 만료와 확인 방법

by 취미툰 2024. 5. 1.
반응형

제가 운영하는 RDS의 인증서 만료 메세지가 와서 내용에 대한 정리를 하려 글을 씁니다.

먼저 잘 정리된 글이있어서 출처의 글을  참고를 많이 하였습니다.

 

현재 rds mysql의 버전은 8.0.35입니다.

show global variables like 'version';  
      
Variable_name|Value |
-------------+------+
version      |8.0.35|

 

RDS에 접속시 나오는 인증서 업데이트 권고 메세지입니다. 2024년 8월 22일에 인증서가 만료되므로 업데이트하라는 내용입니다.

 

그럼 인증서는 무엇이고 어떻게 해야하는지 알아보겠습니다.

 

1.SSL/TLS 란?

MySQL 8.0이상에 client 접속을 시도하다보면 아래의 메세지를 자주 볼 수 있는데요, 접속 시 usessl의 설정과 관련해서 파라미터값의 설정에 따라 에러가 발생하는 경우입니다. 이는 파라미터 설정을 바꾸면 쉽게 해결되는 문제이긴 한데요.

 

https://bae9086.tistory.com/508#google_vignette

 

[Mysql Workbench]접속 에러 해결 : unsupported protocol

테스트를 위해 centOS에 mysql 5.7 버전을 설치 하고 client 툴인 workbench를 접속하려고 하는데 아래의 에러가 발생하였습니다. SSL connection error: error:0 A000102:SSL routines::unsupported protocol이라고 발생하였

bae9086.tistory.com

 SSL은 Secure Sockets Layer 약자이고 TLS는 Transport Layer Security 약자로 암호화 전송 또는 전송 계층 보안에 의미를 담고 있습니다.

이때 인증서를 이용하여 서버/클라이언트간의 버전이 맞아야 호환성이 맞게되고 통신이 가능하게 된다는 것이네요.

 

MySQL은 버전별로 지원하는 SSL/TLS버전에 대한 부분이 정해져있습니다.

클아이언트에서도 환경에 따라 지원되는 SSL/TLS버전이 정해져있습니다.

현재 8.0.35이므로 제일 아래의 TLSv1.2, TLSv1.3 이것만 지원된다고 보면 되겠네요.

출처 : https://dev.mysql.com/doc/refman/8.0/en/encrypted-connection-protocols-ciphers.html

 

서버에서 직접 tls_version을 확인해보겠습니다.

show global variables like 'tls_version';
      
     
Variable_name|Value          |
-------------+---------------+
tls_version  |TLSv1.2,TLSv1.3|

 

아래 쿼리를 통해 접속된 세션들의 접속 방식 등을 확인할 수 있습니다.

select b.processlist_user,
b.processlist_id, 
b.connection_type,
a.ssl_version,
a.ssl_cipher  
from sys.session_ssl_status a join performance_schema.threads b
on a.thread_id= b.thread_id
where ssl_version is not null
order by ssl_version desc;

processlist_user|processlist_id|connection_type|ssl_version|ssl_cipher|
----------------+--------------+---------------+-----------+----------+
zabbix          |         61128|TCP/IP         |           |          |
zabbix          |            41|TCP/IP         |           |          |
...

자기 세션 확인
show session status like 'ssl_version';

Variable_name|Value|
-------------+-----+
Ssl_version  |     |

 

확인결과 메인 애플리케이션 유저들은 TCP/IP 방식으로 접근해서 사용하네요.

아마 RDS의 인증서 업데이트를 진행해도 현재 애플리케이션의 변경을 할 필요는 없을 것 같습니다.

 

다음시간에는 실제로 인증서 업데이트를 rds에서 수행하고 정리해보도록 하겠습니다.

 

 

출처: https://medium.com/finda-tech/mysql%EA%B3%BC-ssl-tls%ED%86%B5%ED%95%9C-%EC%A0%91%EC%86%8D-15262c49783e

 

 

반응형

댓글