[MySQL][Security] SSL을 이용한 접속방법

■ MySQL 보안접속

MySQL 접속할때 일반적인 접속 방법으로 접속하면 해커들에 의해서 해킹을 당하기 쉽습니다. 물론 내부망 통신이나 방화벽 구축 등등 내부 보안 시스템으로 안전하게 하고 계시겠지만 어쨌든 보안 접속이 아닌이상 일반 접속으로 아이디 패스워드 입력시 전송 패킷 내용을 보면 평문으로 나옵니다. 이는 문제가 있기도 합니다. 그래서 이번에는 SSL/TSL 이용해서 평문이 아닌 암호문으로 서버와 클라이언트간에 통신을 하는 방법을 알아보도록 하겠습니다.

 

■ SSL 환경설정 방법

▶︎ 서버환경설정

서버 파라미터인 --ssl mysqld 시작할때 옵션 사용으로 시작합니다. 기본값이 사용이기 때문에 특별히사용안함으로 지정하지 않는 사용으로 설정됩니다. mysqld(mysqld_safe 프로그램이용시에도 마찬가지), 서버 시작시에만 컨트롤이 가능하며 my.cnf 제어할 있는 환경파라미터는 제공하지 않습니다. 

 

▶︎ 서버 환경 파라미터

--ssl-ca: 인증기관에서 발행해주는 인증키입니다. 보통 인증기관을 CA(Certificate Authority)라고 하는데 이곳에서 발행해준 인증서 파일 이름을 입력합니다. --ssl-capath라는 옵션이 있는데 이것은 인증서파일들(CA certificataion file) 있는 디렉토리를 지정하는 옵션입니다.

--ssl-cert : 공개키 파일이 있는 위치와 파일명 입니다. 인증서는 클라이언트에게 보내지고 CA인증서에 다시 인증을 받게 됩니다.

--ssl-key : 서버 개인키 파일입니다.

 

암호화 접속을 하기 위해 서버쪽에서는 아래와 같은 환경 설정이 필요합니다.

[mysqld]
ssl-ca=ca.pem
ssl-cert=server-cert.pem
ssl-key=server-key.pem

 

반드시 암호화 접속으로만 접속을 허용하려면 아래처럼 다음과 같은 옵션을 추가로 지정합니다.

require_secure_transport=ON : 반드시 보안 접속으로만 허용

 옵션을 활성화 시키면 암호화되지 않은 접속은 모두 거부됩니다.

[mysqld]
ssl-ca=ca.pem
ssl-cert=server-cert.pem
ssl-key=server-key.pem
require_secure_transport=ON

소스로 설치했다면 데모 인증서와 파일들을 제공하는데 mysql-test/std_data 디렉토리에서 찾을 있습니다.

 

참고로 서버는 인증서 관련 파일들을 자동으로 찾아내고(data 디렉토리에서) 위에서 얘기했듯이 서버 시작시 자동으로 보안접속 환경으로 시작합니다.

 

또한 다음과 같은 옵션도 제공합니다. cipher 접속 환경 옵션입니다.

--ssl-cipher : 암호화 접속을 위한 허가된 cipher들의 리스트.

--ssl-crl : 인증서 폐기 목록이 포함 파일의 경로 이름입니다. 비슷한 옵션으로 --ssl-crlpath 옵션이 있는데 이것은 디렉토리 경로만을 나타내는 것입니다.

 

▶︎ 클라이언트 환경

클라이언트에서 실행할때 --ssl-mode 옵션에 따라서 접속방법을 결정하게 됩니다. 옵션에 대해서 알아보겠습니다.

 

--ssl-mode=PREFFERED : --ssl-mode 옵션을 시작할 명시하지 않으면 기본적으로 암호화된 접속 방법으로 접속을 시도합니다. 이때 서버 환경이 암호화 접속 방법을 지원할때 암호화 접속으로 접속을 하게 되고 만약 서버쪽이 암호화 접속 방법이 아닌 일반적인 접속 방법을 지원한다면 일반적인 접속 방법으로 접속하게 됩니다. 기본값입니다.

 

--ssl-mode=REQUIRED : 반드시 암호화된 접속을 해야 합니다. 암호화 접속을 사용하지 않으면 접속이 거부됩니다.

--ssl-mode=DISABLED : 암호화 접속을 사용하지 않습니다.

--ssl-mode=VERIFY_CA or --ssl-mode=VERIFY_IDENTITY : 클라이언트에게 반드시 암호화 접속을 요구하고, 또한 서버의 CA 인증서안에 호스트이름  검증을 수행합니다.

 

다음은 클라이언트 측에서 설정하는 옵션들입니다. 서버 옵션과 비슷합니다.

--ssl-ca : Certificate Authority(CA) 인증서 파일의 위치 파일이름입니다. 옵션을 사용하게 되면 반드시 서버에 일치하는 CA인증서 파일이 있어야 합니다. 비슷한 --ssl-capath 옵션이 있는데 이것은 CA인증서 파일의 위치, 디렉토리만을 입력하는 옵션입니다.

--ssl-cert : 공개키 파일이 있는 디렉토리입니다.

--ssl-key : 클라이언트 개인키 파일이 있는 디렉토리입니다.

 

또한 클라이언트도 SSL제어 옵션을 제공합니다.

--ssl-cipher : 암호화 접속을 위한 허가된 cipher들의 리스트.

--ssl-crl:인증서 폐기 목록이 포함 파일의 경로 이름입니다. 비슷한 옵션으로 --ssl-crlpath 옵션이 있는데 이것은 디렉토리 경로만을 나타내는 것입니다.

--tls-version : 암호화된 프로토콜만을 허용합니다.

 

-  암호화된 접속 방법

mysql 실행할 암호화된 접속을 하기 위해서는 몇가지 옵션을 입력해 주셔야 합니다. 위에서 얘기한 ssl-ca, ssl-cert, ssl-key 위치와 인증서 파일명을 입력합니다. 더불어 접속할 아이디와 암호도 함께 입력해 줍니다.

shell > mysql --ssl-ca=/usr/local/mysql/data/ca.pem \
--ssl-cert=/usr/local/mysql/data/client-cert.pem \
--ssl-key=/usr/local/mysql/data/client-key.pem \
-uroot -p

 

이상없이 암호화 접속이 완료되었다면 다음 명령을 사용하여 어떤 알고리즘이 사용되었는지 한번 확인해 봅니다. 세션 상태 변수중 Ssl_cipher라는 변수가 있습니다. 변수값이 비어 있으면 암호와 접속이 되지 않은 것입니다. 특정 값이 나온다면 암호화 접속이 완료된 것입니다.

mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher';
+---------------+---------------------------+
| Variable_name | Value                     |
+---------------+---------------------------+
| Ssl_cipher    | DHE-RSA-AES128-GCM-SHA256 |
+---------------+---------------------------+
1 row in set (0.01 sec)

 

혹은 다른 방법으로 mysql 클라이언트 접속 상태에서 '\s' 명령을 입력하면 몇가지 정보가 나오게 됩니다.

그중에서 다음의 항목을 유심히 봐주시면 됩니다.

mysql> \s
--------------
mysql  Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using  EditLine wrapper

Connection id:          5
Current database:
Current user:           root@localhost
SSL:                    Cipher in use is DHE-RSA-AES128-GCM-SHA256
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.27-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 31 min 52 sec

Threads: 1  Questions: 16  Slow queries: 0  Opens: 108  Flush tables: 1  Open tables: 101  Queries per second avg: 0.008

SSL:                    Cipher in use is DHE-RSA-AES128-GCM-SHA256

SSL이란 항목이 있는데 어떤 암호화 방법으로 접속되었는지 보여주는 화면입니다.

 

- 암호화된 사용자 계정 생성

• SSL/TLS(가장 기본적인 암호화 접속)
create user 'admin'@'localhost' identified by 'admin1234' require SSL;

• X509
create user 'admin'@'localhost' identified by 'admin1234' require X509;

• CIPHER 'cipher'
create user 'admin'@'localhost' identified by 'admin1234' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA';

 

암호화된 접속인 TLS 프로토콜과 Cipher

▶︎ 지원가능한 TLS 프로토콜 버전

MySQL 암호화 접속은 TLS접속도 지원합니다. 접속가능한 TLS버전은 TLSv1, TLSv1.1, and TLSv1.2 지원합니다. 시스템 전체에 적용되는 환경을 설정하려면 OS 문서를 참고하셔야 합니다. 예를 들어 Openssl에서 지원가능한 버전을 명시하려면 /etc/ssl/openssl.cnf 다음과 같이 입력합니다.

[system_default_sect]
MinProtocol = TLSv1.2

 

▶︎ OpenSSL, yaSSL에서 지원되는 버전.

OpenSSL 1.0.1 혹은 높은 버전 : TLSv1, TLSv1.1, TLSv1.2 프로토콜 지원.

yaSSL : TLSv1 and TLSv1.1 

MySQL SSL 종류에 따라 위와 같은 TLS버전을 지원합니다.

 

▶︎ TLS 프로토콜 환경 설정

적용된 TLS 확인하는 방법은 다음과 같습니다.

mysql> SHOW GLOBAL VARIABLES LIKE 'tls_version';
+---------------+-----------------------+
| Variable_name | Value                 |
+---------------+-----------------------+
| tls_version   | TLSv1,TLSv1.1,TLSv1.2 |
+---------------+-----------------------+

 

▶︎ 지원가능한 TLS버전을 제한하는 방법

my.cnf 환경파일에 설정합니다.

- 1.1, 1.2 지원하는 환경을 설정할 경우.

[mysqld]
tls_version=TLSv1.1,TLSv1.2

 

- 1.2 지원하는 환경을 만들경우

[mysqld]
tls_version=TLSv1.2

 

- 접속 TLS버전마다 모두 지원이 가능하도록 구성하고 싶은경우

tls_version=TLSv1,TLSv1.1,TLSv1.2

tls_version=TLSv1.1,TLSv1.2

tls_version=TLSv1.2

이렇게 하면 어떤 버전이든 접속을 받아들일 있습니다.

 

▶︎ 지원가능한 Cipher 리스트

다음 명령어를 입력하면 지원가능한 Cipher리스트가 나옵니다. Openssl혹은 yaSSL 둘중에 어떤것으로 MySQL 컴파일 했느냐에 따라 지원되는 Cipher리스트가 다릅니다. 관련 내용은 다음 페이지를 참고하시면 됩니다.

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

 

▶︎ 현제 세션에서 사용된 TLS 프로토콜과 Cipher 확인

mysql > SELECT * FROM performance_schema.session_status
    ->  WHERE VARIABLE_NAME IN ('Ssl_version','Ssl_cipher');
+---------------+---------------------------+
| VARIABLE_NAME | VARIABLE_VALUE            |
+---------------+---------------------------+
| Ssl_cipher    | DHE-RSA-AES128-GCM-SHA256 |
| Ssl_version   | TLSv1.2                   |
+---------------+---------------------------+

 

■ MySQL 사용하여 SSL, RSA 인증서와 키를 만들기

▶︎ 인증서와 키가 생성되는 케이스

- OpenSSL옵션을 사용하여 MySQL 컴파일 했을 경우 MySQL서버를 시작할 자동으로 생성이 됩니다.

- mysql_ssl_rsa_setup이란 프로그램을 수동으로 실행하여 생성할 있습니다.

- RPM으로 설치 data디렉토리 초기화시 자동으로 mysql_ssl_rsa_setup 호출하여 생성합니다.

 

▶︎ SSL, RSA 파일 생성

- 자동 파일 생성.

MySQL 환경 옵션중에  auto_generate_certs sha256_password_auto_generate_rsa_keys 라는 환경 옵션에 의해서 SSL, RSA 파일이 서버 시작시 생성됩니다. 옵션들은 기본으로 사용으로 활성화 됩니다.

서버가 시작되면 auto_generate_certs환경변수에 의해 서버와 클라이언트에서 사용되는 SSL 인증서 파일들이 데이터 디렉토리에 자동으로 생성됩니다. 만약 서버를 시작할때 --ssl 옵션을 NO 하셨다면 서버쪽의 SSL 파일들은  데이터 디렉토리에 생성되지 않습니다. 자동으로 생성되는 파일들은 다음과 같은 것들이 있습니다.

ca.pem               Self-signed CA certificate
ca-key.pem           CA private key
server-cert.pem      Server certificate
server-key.pem       Server private key
client-cert.pem      Client certificate
client-key.pem       Client private key

 

sha256_password_auto_generate_rsa_keys 파라미터가 사용으로 되어 있으면 다음과 같은 파일이 생성됩니다.

private_key.pem      Private member of private/public key pair
public_key.pem       Public member of private/public key pair

 

- 인증서의 내용 확인방법

shell > openssl x509 -text -in ca.pem
shell > openssl x509 -text -in server-cert.pem
shell > openssl x509 -text -in client-cert.pem

항목마다 -----BEGIN CERTIFICATE-----, -----END CERTIFICATE----- 나오고 많은 양의 내용물이 출력됩니다.

 

▶︎ 인증서 시작 만료 기간 확인

다음과 같은 명령어로 확인합니다.

mysql> SHOW STATUS LIKE 'Ssl_server_not%';
+-----------------------+--------------------------+
| Variable_name         | Value                    |
+-----------------------+--------------------------+
| Ssl_server_not_after  | Nov 22 22:38:01 2029 GMT |
| Ssl_server_not_before | Nov 25 22:38:01 2019 GMT |
+-----------------------+--------------------------+
2 rows in set (0.01 sec)

 

 

 

 

■ openssl 이용한 인증서 파일 생성 방법 - 명령행 기반

▶︎ 시작하기 전에

인증서를 생성하면 여러가지 질문들을 만나게 됩니다. 다음의 내용을 참고하시면 좋을것 같습니다.

https://myinfrabox.tistory.com/21

참고로 밑에 예제는 국제 공인 인증서가 아닌 내부 테스트용 인증서입니다. 프로덕션 Database에 적용시 국제 표준의 공인 인증서를 발급받아 사용하시기 바랍니다.

 

▶︎ 인증서 생성하기

다음과 같은 방식으로 파일들을 만듭니다. 순서대로 따라 하시면 됩니다.

 

+ 파일이 들어있는 디렉토리 초기화 - newcerts라는 디렉토리에서 작업한다는 가정하에 진행합니다.

여기서의 newcerts 디렉토의 경로는 /home/certs입니다.

shell > mkdir /home/certs && cd /home/certs
shell > rm -rf *

 

+ CA 인증서 만들기

shell > openssl genrsa 2048 > ca-key.pem
Generating RSA private key, 2048 bit long modulus
..........................+++
....................................+++
e is 65537 (0x10001)


shell > openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]: KR
State or Province Name (full name) []: Seoul
Locality Name (eg, city) [Default City]: Seoul
Organization Name (eg, company) [Default Company Ltd]: admin
Organizational Unit Name (eg, section) []: admin
Common Name (eg, your name or your server's hostname) []: ca-labs
Email Address []: testadmin@testadmin.com

입력 항목들이 많이 나오는데 입력해 주시는게 좋습니다. 도메인 방식으로 호스트를 접속시 만약 도메인 정보를 틀리게 입력하면 접속이 안될 수도 있습니다. 그러니 모든 항목을 올바르게 입력해 주는것을 추천드립니다. 이부분은 테스트로 하는 것이라 마음대로 임의의 값으로 입력했습니다. 중요한 한가지가 있습니다. Common Name을 지금 ca인증서를 만들때와 밑에 서버, 클라이언트 키를 만들때 이름이 달라야 합니다.!!!! 유의하셔야 합니다. 안그러면 추후 에러를 만나게 됩니다.!!!

 

+ 서버 인증서 생성, 암호(passphrase) 제거, 그리고 인증서에 서명

# server-cert.pem = public key, server-key.pem = private key

shell > openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
Generating a 2048 bit RSA private key
............................................................+++
.............+++
writing new private key to 'server-key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]: KR
State or Province Name (full name) []: Seoul
Locality Name (eg, city) [Default City]: Seoul
Organization Name (eg, company) [Default Company Ltd]: admin
Organizational Unit Name (eg, section) []: admin
Common Name (eg, your name or your server's hostname) []: server-labs
Email Address []: testadmin@testadmin.com


Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:challenge
An optional company name []:

위에 몇가지 항목들은 위와 같이 입력해 줍니다 그리고 여기에서 중요한게 A challenge password 입니다. 가능하면 공란으로 두시길 추천드립니다. 인증서간 암호를 체크하는것인데 만약에 잊어버리면 문제가 발생할 소지가 있습니다. 한가지 언급드리고 싶은게 위에서 말씀드렸듯이 Common Name을 다르게 입력합니다.

shell > openssl rsa -in server-key.pem -out server-key.pem
writing RSA key

shell > openssl x509 -req -in server-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
Signature ok
subject=/C=KR/ST=Seoul/L=Seoul/O=admin/OU=admin/CN=server-labs/emailAddress=testadmin@testadmin.com
Getting CA Private Key

 

+ 클라이언트 인증서 생성, 암호 제거, 그리고 인증서에 서명

# client-cert.pem = public key, client-key.pem = private key

shell > openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem
Generating a 2048 bit RSA private key
....................................................................................................................................................................................................................................................+++
..............+++
writing new private key to 'client-key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]: KR
State or Province Name (full name) []: Seoul
Locality Name (eg, city) [Default City]: Seoul
Organization Name (eg, company) [Default Company Ltd]: admin
Organizational Unit Name (eg, section) []: admin
Common Name (eg, your name or your server's hostname) []: client-labs
Email Address []: testadmin@testadmin.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:challenge
An optional company name []:

위에서 말씀드렸듯이 올바르게 모두 같게 입력해야 합니다. challenge password또한 공란으로 해두시는것을 추천드립니다. 한번 더 말씀드립니다. 위에서 말씀드렸듯이 CA 인증서와 Common Name을 다르게 입력합니다.

shell > openssl rsa -in client-key.pem -out client-key.pem
writing RSA key

shell > openssl x509 -req -in client-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
Signature ok
subject=/C=KR/ST=Seoul/L=Seoul/O=admin/OU=admin/CN=client-labs/emailAddress=testadmin@testadmin.com
Getting CA Private Key

CA 인증서와 Common Name을 자주 말씀드리는 이유는 저도 인증서 생성 후 접근을 시도했을때 SSL을 통한 접근이 안되었기 때문입니다. 이 이유를 나타내는 블로그가 딱 한군데 밖에 없었습니다. 그래서 몇번 언급드립니다.

 

+ 인증서 검증하기

shell > openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
server-cert.pem: OK
client-cert.pem: OK
반드시 OK가 떨어져야 합니다. 만약 아래와 비슷한 에러가 나온다면 위에서 강조했듯 Common이름을 같게 하지 않았는지 의심해 봐야 합니다.
server-cert.pem: C = KR, ST = Seoul, L = Seoul, O = admin, OU = admin, CN = admin-labs, emailAddress = testadmin@testadmin.com
error 18 at 0 depth lookup:self signed certificate
OK
client-cert.pem: C = KR, ST = Seoul, L = Seoul, O = admin, OU = admin, CN = admin-labs, emailAddress = testadmin@testadmin.com
error 18 at 0 depth lookup:self signed certificate
OK

 

+ 인증서 파일 내용보기

shell > openssl x509 -text -in ca.pem
shell > openssl x509 -text -in server-cert.pem
shell > openssl x509 -text -in client-cert.pem

항목마다 -----BEGIN CERTIFICATE-----, -----END CERTIFICATE----- 나오고 많은 양의 내용물이 출력됩니다.

 

+ 인증서 파일 설정 등록

my.cnf 다음항목을 입력합니다.[mysqld] 섹션에 입력합니다.

[mysqld]
ssl-ca=/home/certs/ca.pem
ssl-cert=/home/certs/server-cert.pem
ssl-key=/home/certs/server-key.pem

그리고 MySQL서버를 시작합니다.

shell > /etc/init.d/mysqld start
혹은
shell > /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql

 

+ 인증서 상태 확인

mysql 접속 ssl 등록 상태를 확인합니다.

mysql> show variables like '%ssl%';
+---------------+-------------------------------------------+
| Variable_name | Value                                     |
+---------------+-------------------------------------------+
| have_openssl  | YES                                       |
| have_ssl      | YES                                       |
| ssl_ca        | /home/certs/ca.pem                        |
| ssl_capath    |                                           |
| ssl_cert      | /home/certs/server-cert.pem               |
| ssl_cipher    |                                           |
| ssl_crl       |                                           |
| ssl_crlpath   |                                           |
| ssl_key       | /home/certs/server-key.pem                |
+---------------+-------------------------------------------+
9 rows in set (0.00 sec)

 

이중에서 have_openssl, have_ssl 이부분이 반드시 YES 나와야 합니다.

확인을 했다면 user 생성합니다.

• SSL/TLS(가장 기본적인 암호화 접속)
create user 'admin'@'localhost' identified by 'admin1234' require SSL;

• X509
create user 'admin'@'localhost' identified by 'admin1234' require X509;

• CIPHER 'cipher'
create user 'admin'@'localhost' identified by 'admin1234' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA';

 

참고로 MySQL 8.0에서 복제 계정 생성시 기본적으로 authentication string 암호 plugin caching_sha256_password입니다. 그래서 계정 생성시 require SSL 붙이지 않습니다.

즉 다음과 같이 생성합니다.

create user 'admin'@'localhost' identified by 'admin1234'

만약 require SSL 붙이면 내부적으로 로직이 바뀌는지는 모르겠지만 접속시 계정에 접속하지 못하는 에러가 발생하게 됩니다.

Last_IO_Error: error connecting to master 'repl@192.168.0.11:3306' - retry-time: 60 retries: 2 message: Access denied for user 'repl'@'192.168.0.12' (using password: YES)

 

그리고 다음과 같이 입력합니다.

shell > mysql -u dbadm --ssl-ca=/home/certs/ca.pem --ssl-cert=/home/certs/client-cert.pem --ssl-key=/home/certs/client-key.pem -p

 

암호를 입력합니다.  접속 다음의 명령을 내리면 어떤 암호화로 접속이 되었는지 확인해 볼수 있습니다.

mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using  EditLine wrapper

Connection id:          4
Current database:
Current user:           dbadm@localhost
SSL:                    Cipher in use is DHE-RSA-AES128-GCM-SHA256
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.27-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 2 min 33 sec

Threads: 1  Questions: 10  Slow queries: 0  Opens: 112  Flush tables: 1  Open tables: 105  Queries per second avg: 0.065

SSL 보이는 부분이 현재 어떤 보안 암호화 기법으로 접속이 되었는지 나오는 부분입니다.

 

mysql 접속할 SSL 접속해야 하고 뒤에 옵션을 일일히 넣는게 싫다면 다음과 같이 my.cnf 입력해 줍니다.

[client]
ssl-ca=/home/certs/ca.pem
ssl-cert=/home/certs/client-cert.pem
ssl-key=/home/certs/client-key.pem

 

 

 

 

 

 

 

※도움이 되셨다면 광고클릭 한번 부탁드립니다.※

Designed by JB FACTORY