2007/10/10

apache2.2@etchでSSLをやろう

OpenSSLでの作業
その1:CAを作る

[usr_cert]
nsCertType=server のコメントをはずす
[v3_ca]
nsCertType=sslCA,emailCA のコメントをはずす

./CA.pl -newca

その2:証明される側(wwwサーバー)からの証明書要求(CSR)をつくる

CA.pl -newreq
COMMON NAMEは使われるときに認識できる名前で。インターネット上で使われるなら、その名前
newkey.pemはデフォルト状態では必ず暗号化されるので、面倒な場合はキーが要らないのを作る。
openssl rsa -in ./newkey.pem -out ./newkey_decrypt.pem


その3:証明書要求にCA局で署名する
CA.pl -sign

その4:認証された証明書をサーバにコピーする
key.pemとcert.pemを使うところへコピー。keyはアクセス権に注意すること

その5:apacheを設定する
デフォルトの設定を解凍
gunzip /usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz /etc/apache2/sites-available/ssl

解凍したSSLの設定を編集:使い証明書、ServerNameとログの辺ぐらいは設定する

sites-available/の他の設定に
<VirtualHost *>
というセクションがある場合、_default_:443が有効にならないので、
<VirtualHost *:80>
に書き換える。

たまに、
NameVirtualHost *:443
を指定するように書いてある説明サイトがあるが、SSLでNameVirtualHostは使えない(ハンドシェイクが終わる前に宛先サーバを知ることが出来ないため)ので、これは奇妙な設定。

「ssl」という設定を有効にする(sites-avalableからenableへのリンクを張る)
a2ensite ssl

SSLモジュールを読み込む
a2enmod ssl

これで
/etc/init.d/apache2 restart
とやると起動してくれるはず。

よしだメモ
http://d.hatena.ne.jp/rudeboyjet/20070124/
は認証局を作って自分自身の証明書を発行し、それをそのままwww認証に使おうという物。
間違ってはいないけど、CA局は別途設けるべき、と思うので
OpenSSL for Windows
http://homepage2.nifty.com/protocol/openssl/
を参考に。


そんな感じで。

参考ページ

eternal miracle blog mode: Apacheのインストール

Debian の Apache2 で SSL セットアップ (klog)

デビアンな生活 openssl

OpenSSL for Windows

0 件のコメント:

コメントを投稿