[MySQL] SSL 접속 확인 방법

MySQL 클라이언트를 이용해서 접속을 하면 자신이 현재 SSL/TLS 이용해서 접속을 했는지 아니면 일반 암호 접속을 했는지 알아내는 방법입니다.

my.cnf 파라미터를 이용해서 SSL/TLS 접속만을 강제하거나 클라이언트 환경에 따라 일반접속, SSL/TLS접속을 선택해서 접속할 있습니다.

혹은 계정을 생성할 강제로 TLS/SSL접속만 접속할 있게끔 있습니다.

여기서는 자신의 접속상태가 SSL/TLS인지 일반접속인지 여부에 대해서 알아보고 SSL/TLS 환경설정 접속방법에 대해서는 다음 페이지를 참고하시기 바랍니다.

https://myinfrabox.tistory.com/14?category=804724

 

■ SSL/TLS 접속 여부 확인

mysql클라이언트를 이용해서 접속 's' 입력하면 다음과 같은 화면이 나옵니다.

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

Connection id: 7
Current database:
Current user: root@localhost
SSL: Cipher in use is DHE-RSA-AES256-SHA
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.11-log MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db     characterset: latin1
Client characterset: utf8
Conn.  characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 36 min 33 sec

내용중 SSL 섹션에 Cipher 시작하는 단어가 나온다면 SSL 접속한 것입니다.

 

현제 세션 상태를 조회해서 확인해 있습니다.

mysql> show  status like 'Ssl_version';
+---------------+---------+
| Variable_name | Value   |
+---------------+---------+
| Ssl_version   | TLSv1.1 |
+---------------+---------+

mysql> show  status like 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value              |
+---------------+--------------------+
| Ssl_cipher    | DHE-RSA-AES256-SHA |
+---------------+--------------------+

 

 

 

 

전체 세션에 대한 조회는 다음과 같습니다.

1. performance schema 조회방법

mysql> SELECT sbt.variable_value AS tls_version,  t2.variable_value AS cipher, 
              processlist_user AS user, processlist_host AS host 
       FROM performance_schema.status_by_thread  AS sbt 
       JOIN performance_schema.threads AS t ON t.thread_id = sbt.thread_id 
       JOIN performance_schema.status_by_thread AS t2 ON t2.thread_id = t.thread_id 
      WHERE sbt.variable_name = 'Ssl_version' and t2.variable_name = 'Ssl_cipher' ORDER BY tls_version;
+-------------+--------------------+------+-----------+
| tls_version | cipher             | user | host      |
+-------------+--------------------+------+-----------+
|             |                    | root | localhost |
| TLSv1       | DHE-RSA-AES256-SHA | root | localhost |
| TLSv1.1     | DHE-RSA-AES256-SHA | root | localhost |
+-------------+--------------------+------+-----------+

 

2. sys schema 조회방법

sys스키마의 session_ssl_status 뷰를 조회합니다.

ssl_cipher ssl_version 내용이 표시되면 SSL/TLS 접속이 것입니다.

mysql> select pt.PROCESSLIST_ID, pt.THREAD_ID, sss.ssl_cipher, ssl_version, ipl.`USER`, ipl.HOST
from sys.session_ssl_status sss,
information_schema.processlist ipl,
performance_schema.threads pt
WHERE 1=1
and pt.THREAD_ID = sss.thread_id 
and pt.PROCESSLIST_ID = ipl.ID 
;
+----------------+-----------+------------------------+-------------+------+--------------------+
| PROCESSLIST_ID | THREAD_ID | ssl_cipher             | ssl_version | USER | HOST               |
+----------------+-----------+------------------------+-------------+------+--------------------+
|              8 |        49 |                        |             | repl | 192.168.0.12:56050 |
|             10 |        51 |                        |             | repl | 192.168.0.13:51150 |
|             11 |        52 | TLS_AES_256_GCM_SHA384 | TLSv1.3     | root | localhost          |
+----------------+-----------+------------------------+-------------+------+--------------------+

Designed by JB FACTORY