Categories: WordPress

phpMyAdmin や WordPress から MariaDB にセキュア接続する。

 さて、「MariaDB でセキュア接続」が出来たので、自鯖の SQL サーバがセキュアになった。というわけで、 phpMyAdmin と WordPress の設定をそれに合わせて変更する。
 各バージョンは MariaDB 10.2.9 win 32-bit、 phpMyAdmin 4.7.4、 WordPress 4.8.2 で、サーバ機は Windows 7 32-bit HE SP1 である。

 作業に入る前に、 CA 情報を使ったときの SQL サーバのステータスを確認した。コマンドラインで mysql -u root -p --ssl-ca=/path/to/my_ca.crt とやってログインし、 s で確認:

--------------
mysql  Ver 15.1 Distrib 10.2.9-MariaDB, for Win32 (AMD64)

Connection id:          221
Current database:
Current user:           root@localhost
SSL:                    Cipher in use is DHE-RSA-AES256-SHA
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.2.9-MariaDB-log mariadb.org binary distribution
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    cp932
Conn.  characterset:    cp932
TCP port:               3306
Uptime:                 25 min 57 sec

Threads: 7  Questions: 14327  Slow queries: 18  Opens: 215  Flush tables: 1  Open tables: 209  Queries per second avg: 9.201
--------------

 DHE-RSA-AES256-SHATLS v1.0 の暗号スイートである。 ssl_cipher=TLSv1.2 をセットすると、サーバは have_ssl|DISABLED を返してきた。 TLS v1.2 は使えない。 MariaDB Windows 版が YaSSL でビルドされているからだ
 次に、接続のときには必ずセキュアになるように WordPress の SQL 用 user のsettings を変えてやる。
GRANT SELECT,INSERT,UPDATE,DELETE on *.* to wpuser@localhost IDENTIFIED by 'password' require ssl;
 コマンドラインからの作業を終了。

[phpMyAdmin の件]
 config.inc.php に下記の行を書き加える。 cfg_Servers_ssl を参照。
 自鯖のconfig.inc.php にはこれのせいで既に $cfg['Servers'][$i]['ssl_verify'] = false; が入っていた。当然、この false を true に変更。
   $cfg['Servers'][$i]['ssl'] = true;
   $cfg['Servers'][$i]['ssl_key'] = '/path/to/MySQL.key';
   $cfg['Servers'][$i]['ssl_cert'] = '/path/to/MySQL.crt';
   $cfg['Servers'][$i]['ssl_ca'] = '/path/to/my_ca.crt';
   $cfg['Servers'][$i]['ssl_verify'] = true;

 wpuser@localhost として phpMyAdmin にログイン。ログインできたけれど、更に 2 つのオプションが要求されたので、以下の 2 行を config.inc.php に追記した。
   $cfg['Servers'][$i]['ssl_ca_path'] = '/path/to/';
   $cfg['Servers'][$i]['ssl_ciphers'] = 'DHE-RSA-AES256-SHA';
 これで、 phpMyAdmin から wpuser@localhost として SQL サーバに接続できるようになった。もちろん、 ‘require ssl’ への設定変更はコマンドラインからではなく、 phpMyAdmin からも出来る。

[WordPress の件]
 “Secure DB Connection” を参照した。
 define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL); を wp-config.php に追加する。今回使っているのが、自前 CA なので、 define('MYSQL_SSL_CA', '/path/to/my_ca.crt'); も追加した。

 以上です!!

o6asan

View Comments

Recent Posts

超手抜き、レンチン・ミキサー芋羊羹。

この秋よく作った芋羊羹のレシピ…

6か月 ago

うー、久々にハマった。

 MariaDB の LTS …

1年 ago

あけましておめでとうございます。

ウサギ年ですねぇ。景気よく跳ね…

1年 ago

docomo の SC-02H 、 SIM ロック解除して Y!mobile で使う。

我が2台目のスマホとして SC…

2年 ago

o6asanの掲示板を引っ越し。-2

箱の準備が終わったので、中身を…

2年 ago

This website uses cookies.