MySQL에 Let’s Encrypt 인증서 적용하기

| 2018년 7월 30일 | 0 Comments

일반적으로 Let’s Encrypt는 웹에서 SSL 통신을 위해 사용됩니다.
그런데 웹뿐만 아니라 다양한 프로그램에서도 사용 가능합니다. sendmail, dovecot과같은 메일 관련 데몬에서도 사용 가능하며, vsftpd와 같이 FTP 관련 데몬에서도 사용가능합니다.
여기에서는 MySQL에서 사용하는 방법에 대하여 알아보겠습니다.

 

1. 기본 정보

-CentOS 7.5 64bit
-MySQL 5.6.32에서 테스트 완료
-인증서는 이미 발급되었다고 가정
-방화벽 설정이 정상적으로 이루어졌다고 가정

 

2. [공통] 인증서 복사(여기에서는 /home/ssl 아래에 복사)

# mkdir /home/ssl
# cp /etc/letsencrypt/live/도메인/* /home/ssl

 

3. [공통] key에 rsa 적용(적용하지 않을 경우 MySQL에서 인식 못함)

# cd /home/ssl
# openssl rsa -in ./privkey.pem -out ./privkey.pem

 

4. [서버] my.cnf 수정

ssl-ca = /home/ssl/fullchain.pem
ssl-cert = /home/ssl/cert.pem
ssl-key = /home/ssl/privkey.pem

 

5. 접속 테스트

1)  [서버] 클라이언트에서 접속할 수 있도록 권한 설정

mysql> grant all privileges on ssltest.* to ssltest@’클라이언트 IP‘ identified by ‘ssltest’ require ssl;
mysql> flush privileges;

2) [클라이언트] SSL 인증서 없이 접속(실패)

mysql -h 서버 IP -ussltest -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘ssltest’@’클라이언트 IP’ (using password: YES)

3) [클라이언트] SSL 인증서 사용하여 접속(성공)

# mysql -h 서버 IP -ussltest -p –ssl-ca=/home/ssl/fullchain.pem –ssl-cert=/home/ssl/cert.pem –ssl-key=/home/ssl/privkey.pem

mysql> \s

————–

Current user: ssltest@클라이언트 IP

SSL: Cipher in use is DHE-RSA-AES256-SHA

Connection: 서버 IP via TCP/IP

————–

 

긴 글 읽어주셔서 감사합니다.

Category: LINUX

김영훈

About the Author ()