Linux
Tips |
|
Webサーバ「lighttpd」でSSLを使うには
北浦訓行
2006/2/9
|
lighttpd(話題のWebサーバ「lighttpd」を使うには参照)は、設定ファイルを変更するだけでSSLを使用できる。ここではFedora Core 4を使って、LAN内など特定のユーザー向けにWebサーバを公開するという前提でSSLの設定方法を紹介する。
注:外部向けのWebサーバでSSLを使用する場合は、信頼できる証明書発行機関(CA)に認証されたサーバ証明書の使用をお勧めする。 |
まず、サーバ証明書を置く場所を決める。ここでは、/etc/lighttpd/sslディレクトリを作成して、そこに置くことにする。作成手順は以下のとおりだ。
# mkdir -p /etc/lighttpd/ssl
# cd /etc/lighttpd/ssl
# openssl req -new -x509 -keyout server.pem -out server.pem
-days 365 -nodes
(省略)
-----
Country Name (2 letter code) [GB]:JP ←2文字国名(JP)
State or Province Name (full name) [Berkshire]:Tokyo ←都道府県
Locality Name (eg, city) [Newbury]:Chiyoda ←区市町村
Organization Name (eg, company) [My Company Ltd]:Example Corp. ←組織名
Organizational Unit Name (eg, section) []:Example Dept. ←部署名
Common Name (eg, your name or your server's hostname) []:Noriyuki
Kitaura ←担当者名またはサーバ名など
Email Address []:kitaura@example.co.jp ←メールアドレス |
次に、lighttpdの設定ファイル(ここでは/etc/lighttpd/lighttpd.conf)を編集してSSLを有効にするのだが、注意すべき点がある。lighttpd.confには、SSLに関する記述(コメントアウト状態)がある。
#### SSL engine
#ssl.engine = "enable"
#ssl.pemfile = "/etc/lighttpd/ssl/server.pem" |
それぞれ行頭の「#」を削除して.pemファイルのフルパスを記述すれば、lighttpdを再起動するだけでSSLが使用できる状態になる。しかし、上記の設定ではあらゆる通信がSSLで暗号化されてしまう。必要な部分(ユーザー認証など)だけをSSL化する場合は、以下のような方法を取る必要がある。
- 非SSL用とSSL用のlighttpdプロセスを別々に起動する
- バーチャルホスト機能を使い、特定のディレクトリのみSSLを有効にする
ここでは、バーチャルホスト機能を利用する方法を説明する。lighttpdの設定ファイルの適当な位置に、以下のような記述を追加する。
$SERVER["socket"] == "192.168.0.10:443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/server.pem" ←.pemファイルのフルパス
server.name = "www.example.com" ←サーバ名
server.document-root = "/srv/www/lighttpd/ssl" ←SSL通信時に公開するドキュメントを置くディレクトリ
} |
lighttpd.confの修正が終わったら、lighttpdを再起動する。
# service lighttpd restart |
これで、/srv/www/lighttpd/sslディレクトリのファイルにアクセスするときのみ、SSL通信となる。
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間