質問: 【現状】 Linuxサーバ(CentOS6)上でjavaのサイトを動かしています。そしてサイトでユーザ登録を行う際に同じインスタンスに入れてあるmysqlとデータのやり取りをしています。 最近GlobalSignでクイックSSL証明書を発行してもらいました。それを利用し、サイトをhttpsでアクセスできるようにしました。 それと同時にmysqlに対してサイトから接続を行う際にこれまでの通常接続ができなくなってしまい、SSLに対応しなければならない事に気づきました。そしてmysqlのSSL対応は色々とサイトで確認しました。 ちなみにSSL証明書を発行してもらった際に頂いたものはこちらです。 ○サーバ証明書 ○中間証明書 そして発行する際に作ったファイルはまだ残してあります。 ○server.keystore 【質問】 /etc/my.cnfのところに [mysqld] ssl-ca=/path/to/中間証明書 ssl-cert=/path/to/サーバ証明書 ssl-key=/path/to/server.keystore と記述し、mysqldを再起動しました。設定は読み込まれていますがhave_opensslとhave_sslはYESとなっていません。NOのままです。ログを見たところssl-keyが読めないと書かれてあったので、設定したkeystoreファイルではなく、別の鍵ファイル(ユーザ用の鍵)が必要なのかなと考えています。 /etc/my.cnfで記述した内容は間違っていますでしょうか?そしてhttpsにしたサイトからDBに接続する際にmysqlもssl対応しなければならないという考えは間違っていませんでしょうか? 宜しければアドバイスをお願いいたします。
回答: CentOS 6 の openssl で秘密鍵を作ったなら下記の記事と同じ理由で動作しないかもしれません。 MySQL のエラーログに下記が出ていないか確認してみると良いと思われます。 ``` SSL error: Unable to get private key from '/path/to/server.keystore' ``` もし、これが原因なのだとしたら、次のように変換して使うと良いです。 ``` openssl rsa -in /path/to/server.keystore -out /path/to/server.keystore.pem ``` > > そしてhttpsにしたサイトからDBに接続する際にmysqlもssl対応しなければならないという考えは間違っていませんでしょうか? > > > 技術的に、という意味であれば、そのような話は聞いたことありません。 Web サイトを https にしても Web サーバと DB サーバの接続には関係ありません。