code up

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQL + SSL + Windows

Windows上のMySQL 5.5にてSSLをセットアップしたときの作業内容。

どこぞのブログを参考にしたときには、ERROR 2026 (HY000): SSL connection error: protocol version mismatchというエラーが出てしまったので、公式サイトの方法で作成。

気をつけなければならないのは、CAの証明書作成時のCommon Name。異なるものにする。

ERROR 2026 (HY000): SSL connection error: ASN: before date in the futureというエラーが出た場合は、証明書作成直後であることが原因(証明書の日時が現在日時より新しい)なので数分待てば解決する。

SSL error: Unable to get private key from 'D:/MySQL Datafiles/server-key.pem'というようなエラーが出る場合は、openssl rsa -in server-key.pem -out server-key.pemまたはopenssl rsa -in client-key.pem -out client-key.pemを行うことで解決する。

openssl genrsa 2048 > ca-key.pem

REM Common Nameをca.foo.barとした場合、
openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca-cert.pem

REM Common Nameをdb.foo.bar等CAとは異なるものにする
openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem

openssl rsa -in server-key.pem -out server-key.pem

openssl x509 -req -in server-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

REM ここで聞かれるCommon Nameはserver-req.pem/server-cert.pemと同じもので構わないっぽい
openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem

openssl rsa -in client-key.pem -out client-key.pem

openssl x509 -req -in client-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

my.iniに書き足す内容。

[mysqld]
ssl-ca                         = "D:/MySQL Datafiles/ca-cert.pem"
ssl-cert                       = "D:/MySQL Datafiles/server-cert.pem"
ssl-key                        = "D:/MySQL Datafiles/server-key.pem"

[client]
ssl-ca                         = "D:/MySQL Datafiles/ca-cert.pem"
ssl-cert                       = "D:/MySQL Datafiles/client-cert.pem"
ssl-key                        = "D:/MySQL Datafiles/client-key.pem"
関連記事
タグ:MySQL
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。