mysql_ssl_rsa_setup이란 무엇인가?
mysql_ssl_rsa_setup은 MySQL에서 보안 연결을 지원하기 위해 필요한 파일들이 누락되었을 때 이를 자동으로 생성해 주는 유틸리티 프로그램입니다. 구체적으로 다음과 같은 역할을 수행합니다.
- SSL 기반의 보안 클라이언트 연결에 필요한 SSL 인증서 및 키 파일 생성
- 암호화되지 않은 연결에서 RSA를 이용한 안전한 비밀번호 교환에 필요한 RSA 키 쌍 파일 생성
- 기존 SSL 파일의 유효 기간이 만료된 경우 새로운 SSL 파일 재생성
mysql_ssl_rsa_setup 실행 방법
mysql_ssl_rsa_setup은 아래와 같은 형식으로 실행할 수 있습니다.
shell> mysql_ssl_rsa_setup [options]
주요 옵션은 다음과 같습니다.
- --datadir: SSL/RSA 파일을 생성할 디렉터리 경로를 지정합니다.
- --verbose: mysql_ssl_rsa_setup이 내부적으로 실행하는 'openssl' 명령어를 화면에 출력하여 확인할 수 있습니다.
mysql_ssl_rsa_setup의 동작 원리
mysql_ssl_rsa_setup은 기본 파일 이름 집합을 사용하여 SSL 및 RSA 파일 생성을 시도하며, 동작 순서는 다음과 같습니다.
- 먼저 PATH 환경 변수에 지정된 위치에서 openssl 바이너리를 탐색합니다. openssl을 찾지 못하면 mysql_ssl_rsa_setup은 아무 작업도 수행하지 않고 종료됩니다.
- openssl이 존재하는 경우, --datadir 옵션으로 지정된 MySQL 데이터 디렉터리(옵션이 없으면 컴파일 시 설정된 기본 데이터 디렉터리)에서 기본 SSL 및 RSA 파일을 찾습니다.
SSL 파일 확인 절차
mysql_ssl_rsa_setup은 데이터 디렉터리에서 다음 이름의 SSL 파일이 있는지 확인합니다.
ca.pem
server-cert.pem
server-key.pem
위 파일 중 하나라도 이미 존재한다면, mysql_ssl_rsa_setup은 새로운 SSL 파일을 생성하지 않습니다. 반대로 해당 파일들이 없으면 openssl을 호출하여 아래와 같은 파일들을 생성합니다.
ca.pem (자체 서명된 CA 인증서)
ca-key.pem (CA 개인 키)
server-cert.pem (서버 인증서)
server-key.pem (서버 개인 키)
client-cert.pem (클라이언트 인증서)
client-key.pem (클라이언트 개인 키)
이렇게 생성된 파일들은 SSL을 통해 클라이언트와 서버 간의 연결을 안전하게 보호하는 데 사용됩니다.
RSA 파일 확인 절차
mysql_ssl_rsa_setup은 SSL 파일 외에도 데이터 디렉터리에서 다음 이름의 RSA 파일 존재 여부를 확인합니다.
private_key.pem (개인/공개 키 쌍 중 개인 키)
public_key.pem (개인/공개 키 쌍 중 공개 키)
이 RSA 키 쌍은 암호화되지 않은 연결에서도 비밀번호를 안전하게 교환할 수 있도록 지원합니다.
정리
mysql_ssl_rsa_setup은 MySQL 설치 후 보안 관련 파일이 누락되었거나 만료되었을 때 손쉽게 이를 보완할 수 있는 유용한 도구입니다. 단, openssl이 시스템에 설치되어 있어야 하며, --datadir 옵션으로 올바른 데이터 디렉터리를 지정하는 것이 중요합니다.