Last update 2003.07.12
もくじ?
Apache は httpd.apache.org で開発されています。
Apacheは、最新版が1.3.27である。 2.0.47もあるけど、まだ試していない。
mozilla.gr.jpの運用でApacheの設定をしてみたので、適度にメモしておこうかな。
自サーバも設定した。
つくりかた
./configure --enable-module=so
make
make install
/usr/local/apache 配下にインストールされる。
ファイル一覧local | Vine | ||
apxs | bin/apxs | /usr/sbin/apxs | インストール的拡張 |
httpd.conf等 | conf/ | /etc/httpd/conf/ | 設定ファイル |
logs/ | /etc/httpd/logs/ | ログファイル |
必要になる知識
NameVirtualHost 192.168.0.1 <VirtualHost 192.168.0.1> ServerName www.siisise.net DocumentRoot /http/www/ ErrorLog logs/siisise-error_log CustomLog logs/siisise-access_log </VirtualHost> <VirtualHost 192.168.0.1> ServerName www.example.com DocumentRoot /http/example/ </VirtualHost>
のように書きます。
ApacheのMLを見ていると、IPアドレスを入れるところにサーバ名を書いて、できませんと言っている人が多いですね。
ContentType: text/html; charset=Shift_JIS
などという設定が標準でできるようにはならないだろうか?
ある指定をして、拡張子を.html.ja とすると、日本語のドキュメントであることが指定でき、.html.en などの他の言語のドキュメントと自動判別させることができる。
これには落とし穴があり、HTTP/1.1ではデフォルトの指定が存在しない。そのために、ブラウザで指定されない言語を指定していると、ファイル選択のWebページが表示されてしまう。
言語の他に、文字コードも指定ができる。
html.ja.euc
html.en
html
この3つの拡張子のファイルを作った場合、htmlのファイルしか参照しない。 htmlファイルが完全に一致してしまわないように、html. と最後にピリオド.をつけるのがよい。
他に
html.ja.euc
html.en
html.euc
としてみると、言語指定のある場合はそれぞれの言語のhtmlを、言語指定のない場合は、文字コードのみ指定されたhtmlを参照してくれる。
全て準備しないと該当するものがないといわれてしまう事もある。
文字コードとしては、euc-jp、Shift_JIS、ISO-2022-JP の他にも UTF-8、UCS-2といったところを準備しておけば、完璧ではないだろうか?
SSLは、Webサーバなどで暗号化をする機能というか、あれです。
SSLを利用するには、Apache+SSLや mod_ssl、Apache-SSLを利用する方法があるらしい。
今回は、ソースコードからコンパイルする環境があるので、mod_sslを利用してみる。
必要なソフトは、
Apache 1.3.27 (それ以下はセキュリティホールあり)
OpenSSL
mod_ssl 2.8.11_1.3.27
である。
opensslはrpm でもよいので事前にインストールしておこう。
Vine等には入っている。
makeする場合は
# tar zxvf openssl-0.9.6b.tar.gz
$ cd openssl-0.9.6b
# ./config
# make
# make test
# make install
/usr/local/ssl にインストールされるのかな?
rpmだと、/usr にインストールされるようだ。
Apacheを適当なディレクトリに解凍する。
$ tar zxvf apache-1.3.27.tar.gz $ tar zxvf mod_ssl-2.8.11_1.3.27.tar.gz $ cd mod_ssl-2.8.11_1.3.27 $ ./configure --with-apache=../apache_1.3.27/ --prefix=/usr/local/apachessl --with-ssl=/usr/local/ssl --enable-module=so (付けてOK?) その他オプションいろいろ
一度、ここで止まってしまい悩んだ。
APACI failed
APACIとはなんだろう?
OpenSSLをインストール済みの場合は、--with-ssl=/usr (VineLinuxの場合) でよいようです。
opensslもソースコードからmakeしてる解説ばかりでわからんかった。
cd ../apache_1.3.27 $ make $ make certificate TYPE=dummy にしてみた [R]: [] $ su # make install
libexpat が必要であるというエラーメッセージが表示される?
ApacheもOpenSSLもインストールされている場合。
# tar zxvf mod_ssl-2.8.11-1.3.27.tar.gz # cd mod_ssl-2.8.11-1.3.27 # ./configure --with-apxs=/usr/local/apache/bin/apxs --with-ssl=/usr/local/ssl
ApacheにEAPIがないよってエラーが出た。なんだろう。
Apache のモードが違うらしい・・・
http://siisise.net/linux/apache.html
の EAPI がエラーになる件は
--enable-rule=EAPI --enable-module=all --enable-shared=max なんてすると EAPI が有効になりますよ。
ただし、全部の module がコンパイルされたりしますけど。
というコメントを誰かから頂いた
秘密な鍵をつくるのだっ
安全な通信をするには、暗号化が必要です。そのために、まず秘密鍵と公開鍵を使います。秘密鍵で暗号化したものは、公開鍵で読むことができます。公開鍵を使って暗号化したものは、秘密鍵で読むことができます。たぶん。
相手が本人である、ということが証明できれば、それで安全です。しかし、誰でも暗号化した文書と公開鍵をいっしょに配っていると、偽の相手である場合も、あるかもしれません。
そこで登場するのが証明書(cert?)というものです。
[PKIの基礎知識]で大体のことを知ってみてください。
Vine Linuxのインストール済みApacheでは、/etc/httpd/conf にいろいろとディレクトリがあります。
ここでは、秘密鍵と証明書があればいいでしょうか。どちらもDERではなくテキスト形式のPEMで保存されているようです。
インストールするもの
秘密鍵は ssl.key のなかに、証明書は ssl.crt の中に、ルートからの証明も同じところに入れます。
ルート認証局(CA)、中間CAなどのファイルは、1つのファイルにまとめておくことができます。
[しいしせねっと]