MySQL 接続の TLS プロトコルを確認する
MySQL 接続の TLS プロトコルを確認する方法を調べた。
現在の接続の暗号化で使用している TLS プロトコルと暗号スイートを知りたかったので、Ssl_version
と Ssl_cipher
のサーバーステータス変数の値を確認する。
mysql> SHOW SESSION STATUS LIKE 'Ssl_version'; +---------------+---------+ | Variable_name | Value | +---------------+---------+ | Ssl_version | TLSv1.2 | +---------------+---------+ mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher'; +---------------+-----------------------------+ | Variable_name | Value | +---------------+-----------------------------+ | Ssl_cipher | ECDHE-RSA-AES128-GCM-SHA256 | +---------------+-----------------------------+
サーバーがサポートする SSL 暗号のリストは Ssl_cipher_list
のステータス変数で確認できる。
mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher_list'; +-----------------+------------------------------------------------------------------+ | Variable_name | Value | +-----------------+------------------------------------------------------------------+ | Ssl_cipher_list | ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384: ... | +-----------------+------------------------------------------------------------------+
Rails アプリケーションから接続している場合は、console で生 SQL を実行することで確認できた。
ActiveRecord::Base.connection.select_one("SHOW SESSION STATUS LIKE 'Ssl_version';")