Ubuntu 10.10のMySQLとSSL通信でJDBC接続する
apt-getでUbuntu 10.10にインストールしたMySQLはmy.cnfへ設定を追加すればSSLでの接続が可能です。
MySQLのSSL接続については、パブリッククラウド上のMySQLと社内サーバーをセキュアに繋ぐ方法の1つとして調べています。
社内サーバーであればLANを切ってセキュリティを確保しますが、クラウド上のMySQLサーバーと通信する場合は、VPNか今回試すSSL接続で行う必要があります。
また、AWSやニフティクラウド*1の場合、内部ネットワークは共有なのでセキュリティの重要度が高いデータは同様に暗号化しなければなりません。
今回、MySQLのSSL接続を有功にして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)
接続用のキーを生成する
以下のコマンドで必要な証明書やキーを生成します。オプションの箇所は適当に指定しました。