« ALONE | ホーム | 何度見ても「下駄マック」としか読めない件。 »
2007年1月25日
PrivateCAによるSSL証明書作成についてまとめ
Private CAのディレクトリを作ってCA.plを拾ってくる
/usr/local/etc/demoCAとでもしましょうか。で、/usr/lib/ssl/misc/あたりにころがってるCA.plがあるのでこれをそのディレクトリに放り込む。$CATOPは書き換える必要があるので注意。 ※2/5に手順を再度確認する機会があったので大幅に追記、編集。$CATOP=".";
openssl.cnfをカスタマイズ
ここに気がつくまで右往左往しまくり。{countryName,stateOrProvinceName,localityName,0.organizationName}_defaultを適当に変えて、さらに "nsCertType = sslCA, emailCA" がコメントアウトされている部分を有効化させる。(←これをしないことによってCA証明書がSubject Type=End Entityになる。おかげでか非CA証明書として見られて証明書検証パスが通せずIE6でエラーが出まくった) また、[CA_default]セクションを以下のようにも。dir = . # Where everything is kept同じくサーバ証明書用設定ファイルと、クライアント証明書用のをそれぞれ作成。同じように "nsCertType = server", "nsCertType = client, email" となっている箇所を有効化すればいい。(CA用の場所はコメントしてね)
CA.pl -newca
いよいよnewcaの出番。環境変数SSLEAY_CONFIGでopensslコマンドに渡す引数がいじれる。# export SSLEAY_CONFIG="-config ./demo.cnf" # CA.pl -newca起動後対話式に入力するパラメータは割愛。完了すればdemoCAディレクトリにcacert.pemが出来上がるので、これをApacheのCApathの通ったディレクトリ等にもっていく。そのディレクトリでCA証明書のハッシュリンクも忘れずに。
# ln -sf cacert.pem `openssl x509 -noout -hash < cacert.pem`.0あとはブラウザにインポートするために適宜変換。
# openssl x509 -inform pem -in ./cacert.pem -outform der -out ./ca.der
サーバ証明書の作成
その次はサーバ証明書。demoCAの下にservers/(サーバのFQDN)みたいにして何個作ってもいいように。# mkdir servers/example-site.jp # cd servers/example-site.jp # openssl genrsa -out server.key 1024 # openssl req -config ../../demo-server.cnf -new -key server.key -out server.csrで、CSRを作ったあとはdemoCAに戻ってこいつを署名すればおけ。
# openssl ca -config ./demo-server.cnf -in servers/example-site.jp/server.csr \ -keyfile private/cakey.pem -cert cacert.pem \ -out servers/example-site.jp/cert.pem最後にサーバの秘密鍵がパスワードついたままなの忘れてたので外しておきますよ。
# openssl rsa -in server.key -out server-nopass.keyこんなところかな。あとは適切なフォルダにここでできたserver-nopass.keyとcert.pemを移してApacheの設定に渡してrestartすればいいはず。クライアント証明書はまたこんど。
トラックバック(0)
トラックバックURL: http://foursics.jp/cgi-bin/mt/mt-tb.cgi/55
コメントする