2.5. 기본적으로 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
[client] ssl-mode=VERIFY_IDENTITY ssl-ca=/etc/pki/tls/certs/ca.crt.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정은 MySQL 클라이언트가 TLS 암호화를 사용하고 클라이언트가 서버 인증서의 CN(
ssl-mode=VERIFY_IDENTITY
)과 호스트 이름을 비교함을 정의합니다. 또한 CA 인증서의 경로를 지정합니다(ssl-ca
).
검증
호스트 이름을 사용하여 서버에 연결하고 서버 상태를 표시합니다.
mysql -u root -p -h server.example.com -e status
# mysql -u root -p -h server.example.com -e status ... SSL: Cipher in use is TLS_AES_256_GCM_SHA384
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSL
항목에사용 중인 Cipher가 포함된
경우 연결이 암호화됩니다.이 명령에서 사용하는 사용자에게는 원격으로 인증할 수 있는 권한이 있습니다.
연결하는 호스트 이름이 서버의 TLS 인증서의 호스트 이름과 일치하지 않으면
ssl-mode=VERIFY_IDENTITY
매개변수로 인해 연결이 실패합니다. 예를 들어localhost
에 연결하는 경우 다음을 수행합니다.mysql -u root -p -h localhost -e status
# mysql -u root -p -h localhost -e status ERROR 2026 (HY000): SSL connection error: error:0A000086:SSL routines::certificate verify failed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow