SSLオレオレ認証サーバの設定方法メモ
マルチポスト元→http://exth.net/~tgbt/wordpress/2009/11/04/2673/
うまくできたと思っていたらうまくできていなくて,完全にはまってしまって時間を浪費したのでメモっておく.
要求:オレオレ認証.ただし,認証者と認証対象を分けたい.
既にhttp://hatesate.dip.jp/myserver/2007/10/smtp.htmlあたりを見てうまくできていたつもりだったんだけど,どうやら認証者と認証対象が同じケースだった模様.
今回新たに参考にしたのはオデの日記@WEB系: opensslを使って秘密鍵と証明書の作成.
何となくわかった気がする.
ちなみに,グーグル先生に聞くと,openssl.confとかの設定ファイルを使う方法やらCA.plないしCA.shを使う方法なんてのも出てくる.今回のはもっとシンプルな方法かしら?
モアベターな方法があるもかもしれないけど,とにかく最低限の要求は満たせたので良しとする.
CA(認証局)=認証者の情報を作る
create random file # ps aux > rand.dat create CA private key # openssl genrsa -des3 -out ca.key -rand rand.dat 1024 create CA crt # openssl req -new -x509 -days 365 -key ca.key -out ca.crt
ランダムファイルを作る必要があるのか,この作り方が妥当なのかは今ひとつだけど,これで認証局の情報が作れる.
サーバ=認証対象の情報を作る
create rand file # ps aux > rand.dat create private key # openssl genrsa -des3 -out server.key -rand rand.dat 1024 create non_password key # openssl rsa -in server.key -out server_np.key create public key # openssl req -new -key server_np.key -out server.csr create pem # opnessl x509 -in server.csr -out server.pem -req -signkey server_np.key -days 365
これでserver_np.keyという認証キーに対する認証要求server.csrが作れる.あとはこいつを認証局で認証すればOK.
認証する
create serial number # echo 00 > serial.txt sign # openssl x509 -CA ../ca/ca.crt -CAkey ../ca/ca.key -CAserial serial.txt -req -days 365 -in ../server/server.scr -out server.crt
認証完了.ちなみにシリアルナンバーは適当にインクリメントされる模様.
補足
CA生成時に入力したCN情報が認証者,サーバ生成時に入力したCN情報が認証対象として扱われるようになる.ThnuderbirdとFirefoxで確認した.
それから,認証したものを却下するにはopenssl ca -revokeを使うらしい.らしいのだが,うまくいかなかった.