Ubuntu 10.10のMySQLとSSL通信でJDBC接続する

apt-getでUbuntu 10.10にインストールしたMySQLはmy.cnfへ設定を追加すればSSLでの接続が可能です。


MySQLSSL接続については、パブリッククラウド上のMySQLと社内サーバーをセキュアに繋ぐ方法の1つとして調べています。
社内サーバーであればLANを切ってセキュリティを確保しますが、クラウド上のMySQLサーバーと通信する場合は、VPNか今回試すSSL接続で行う必要があります。
また、AWSニフティクラウド*1の場合、内部ネットワークは共有なのでセキュリティの重要度が高いデータは同様に暗号化しなければなりません。


今回、MySQLSSL接続を有功にしてJavaのアプリケーションからSSLで接続するところまで通して試してみました。
以降、その手順のメモになります。
(クラウド環境をターゲットとしているのであれば、CentOSの方が利用できるところが多いですが、とりあえず手元のUbuntuの環境で試しています)

MySQLの設定は以下のサイトを参考にしました。
http://mifosforge.jira.com/wiki/display/MIFOS/How+to+enable+MySQL+SSL+on+Ubuntu

公式のドキュメントはこちら:
http://dev.mysql.com/doc/refman/5.1/ja/secure-create-certs.html

SSLが有効か確認
mysql -u root -p
mysql> show variables like 'have_ssl';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| have_ssl      | DISABLED |
+---------------+----------+
1 row in set (0.00 sec)
接続用のキーを生成する

以下のコマンドで必要な証明書やキーを生成します。オプションの箇所は適当に指定しました。

*1:ニフティはオプションでプライベートに出来ます

続きを読む