3.4. MySQL 클라이언트에서 CA 인증서 검증으로 TLS 암호화 글로벌 활성화
MySQL 서버가 TLS 암호화를 지원하는 경우 보안 연결만 설정하고 서버 인증서를 확인하도록 클라이언트를 구성합니다. 다음 절차에서는 서버에 있는 모든 사용자에 대해 TLS 지원을 활성화하는 방법을 설명합니다.
3.4.1. 기본적으로 TLS 암호화를 사용하도록 MySQL 클라이언트 구성
RHEL에서 MySQL 클라이언트가 TLS 암호화를 사용하도록 전역적으로 구성하고 서버 인증서의 CN(일반 이름)이 사용자가 연결하는 호스트 이름과 일치하는지 확인할 수 있습니다. 따라서 메시지 가로채기(man-in-the-middle) 공격을 방지합니다.
사전 요구 사항
- MySQL 서버에는 TLS 지원이 활성화되어 있습니다.
-
CA 인증서는 클라이언트의
/etc/pki/tls/certs/ca.crt.pem
파일에 저장됩니다.
절차
다음 콘텐츠를 사용하여
/etc/my.cnf.d/mysql-client-tls.cnf
파일을 만듭니다.[client] ssl-mode=VERIFY_IDENTITY ssl-ca=/etc/pki/tls/certs/ca.crt.pem
이러한 설정은 MySQL 클라이언트가 TLS 암호화를 사용하고 클라이언트가 서버 인증서의 CN(
ssl-mode=VERIFY_IDENTITY
)과 호스트 이름을 비교함을 정의합니다. 또한 CA 인증서의 경로를 지정합니다(ssl-ca
).
검증
호스트 이름을 사용하여 서버에 연결하고 서버 상태를 표시합니다.
# mysql -u root -p -h server.example.com -e status ... SSL: Cipher in use is TLS_AES_256_GCM_SHA384
SSL
항목에사용 중 암호화가 있는 경우...
, 연결이 암호화됩니다.이 명령에서 사용하는 사용자에게는 원격으로 인증할 수 있는 권한이 있습니다.
연결하는 호스트 이름이 서버의 TLS 인증서의 호스트 이름과 일치하지 않으면
ssl-mode=VERIFY_IDENTITY
매개변수로 인해 연결이 실패합니다. 예를 들어localhost
에 연결하는 경우 :# mysql -u root -p -h localhost -e status ERROR 2026 (HY000): SSL connection error: error:0A000086:SSL routines::certificate verify failed
추가 리소스
-
mysql(1) 도움말
페이지의--ssl*
매개 변수 설명.