ただ、SSL サーバを立てたは良いが、何に使うか迷ってしまう・・(^^;;。ちなみに私は、「Web ちゃっと(たかのちゃっと)」を SSL で動かしています。多分、ちゃっと業界初の快挙では無いかっ!!と自負しています(^^;V。
と、言う事で早速必要となるファイルを持って来ましょう。
1.apache1.2.4 を拾ってきます。 → apache_1.2.4.tar.gz
2.apache1.2.4 を SSL 仕様にするパッチを拾ってきます。 → apache_1.2.4+ssl_1.11.tar.gz
3. 認証に利用するSSLeay を拾ってきます。 → SSLeay-0.8.0.tar.gz
以上で準備は整いました。では早速コンパイルに掛かりましょう。まず最初は、/SSLeay-0.8.0.tar.gz のコンパイルを行い、SSL に対するコマンド群を作製します。
---------------- roman# cd /usr/local/src roman# tar xvzfp SSLeay-0.8.0.tar.gz roman# cd SSLeay-0.8.0 roman# make -f Makefile.ssl links *1 roman# make depend;make roman# make rehash *2 roman# make test *3 roman# make install roman# ----------------*1. Makefile の symlink を行い、環境を整えます。
一応、これで SSL はインストールされました。インストール先は /usr/local/ssl です。このディレクトリに以下の様に格納されます。
---------------- roman# pwd /usr/local/ssl roman#ls -l total 12 drwxr-xr-x 2 root wheel 1536 Nov 18 00:00 bin/ drwxr-xr-x 2 root wheel 512 Nov 18 00:00 certs/ drwxr-xr-x 2 root wheel 1024 Nov 18 00:00 include/ drwxr-xr-x 3 root wheel 512 Nov 18 00:00 lib/ drwxr-xr-x 2 root wheel 512 Nov 18 00:00 private/ ----------------さて、次は apache1.2.4 をコンパイルしましょう。これは、SSL 用のパッチを当ててから make します。
---------------- roman# cd /usr/local/src roman# tar apache_1.2.4.tar.gz roman# cd apache_1.2.4 roman# mkdir apache_SSL roman# cd apache_SSL roman# cp ~/apache_1.2.4+ssl_1.11.tar.gz /usr/local/src/apache_1.2.4/apache_SSL roman# tar xvzfp apache_1.2.4+ssl_1.11.tar.gz roman# cd /usr/local/src/apache_1.2.4 roman# cat apache_SSL/SSLpatch | patch roman# cd /usr/local/src/apache_1.2.4/src roman# cp /usr/local/src/apache_1.2.4/apache_SSL/src/apache_ssl.c ./ roman# mule Configuration *1 roman# ./Configure roman# make roman# ----------------*1. apache の Configuration を自分の好みに合わせてカスタマイズします。後、SSL のパッチを当てた時、SSL のディレクトリが間違っているので以下の様に修正します。
---------------- SSL_BASE=/usr/local/ssl SSL_INCLUDE= -I$(SSL_BASE)/include SSL_CFLAGS= -DAPACHE_SSL $(SSL_INCLUDE) SSL_LIB_DIR= $(SSL_BASE)/lib SSL_LIBS= -L$(SSL_LIB_DIR) -lssl -lcrypto ----------------これで make が正常終了すれば src のディレクトリ内に httpsd と言うファイルが出来ます。これが SSL 用の httpd です。これを適当なディレクトリにコピーして環境を作りましょう。
---------------- roman# mkdir /usr/local/apache_SSL roman# mkdir /usr/local/apache_SSL/conf roman# cp /usr/local/src/apache_1.2.4/src/httpsd /usr/local/apache_SSL roman# cp /usr/local/src/apache_1.2.4/apache_SSL/SSLconf/conf/httpd.conf /usr/local/apache_SSL/conf roman# cp /usr/local/src/apache_1.2.4/apache_SSL/SSLconf/conf/mime.types /usr/local/apache_SSL/conf roman# mule /usr/local/apache_SSL/conf/httpd.conf roman# /usr/local/apache_SSL/httpsd -f /usr/local/apache_SSL/conf/httpd.conf roman# ----------------一応、上記コマンドで起動出来ます。が・・。相変わらず、ずいぶんとはしょってます・・(^^;;。apache を触った事のある方はこれで解ると思いますが、触った事の無い方の為に更に少々・・。 apache を起動させる為には全部で 4 個のファイルが必要になります。今は二つのファイルが用意出来ましたが、残りの二つは、/usr/local/src/apache_1.2.4/conf の中に *-dist と言うファイルがあるのでそれを利用します。全部で以下のファイルが出来ました。
---------------- roman# pwd /usr/local/apache_SSL/conf roman# ls -l -rw-r--r-- 1 root wheel 2732 Nov 18 00:00 access.conf -rw-r--r-- 1 root wheel 1554 Nov 18 00:00 httpd.conf -rw-r--r-- 1 root wheel 3546 Nov 18 00:00 mime.types -rw-r--r-- 1 root wheel 6910 Nov 18 00:00 srm.conf roman# ----------------access.conf は特に関係有りません。普通の設定で結構です。srm.conf も今の所特に問題は無いです。mime.types も既存のモノを利用してもらって特に問題は無いです。
---------------- SSLCertificateFile /www/data/httpsd.pem SSLVerifyClient 0 SSLVerifyDepth 10 SSLFakeBasicAuth SSLLogFile logs/SSL.Error_log CustomLog logs/SSL_log "%t %{version}c %{cipher}c %{clientcert}c" ----------------と、言う項目を追加しました。説明は・・。英語ですが、ここをみて下さい(^^;。
起動する時、普通の httpd は port80 を使用しますが、httpsd の場合は port443 を使います。と、言う事は一台の FreeBSD に二つの httpd が立ち上がると言う事ですね。
一応、立ち上がり、「ささっ!!アクセスアクセスっ!!」等とブラウザでましたが、接続出来ない・・。うひぃぃっ!!認証ファイルをまだ作って無いですね。と、言う事で認証ファイル(認証鍵)を作りましょう。 認証鍵置場とファイル名は httpd.conf で設定した、SSLCertificateFile /www/data/httpsd.pem になります。まずはここに行って、以下のコマンドを実行します。
---------------- roman# cd /www/data/httpsd.pem roman# /usr/local/ssl/bin/req -new -x509 -nodes -out httpsd.pem -keyout httpsd.pem Using configuration from /usr/local/ssl/lib/ssleay.cnf Generating a 1024 bit RSA private key ..................................+++++ ....................+++++ writing new private key to 'httpsd.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: 国名 "JP" を入力 State or Province Name (full name) [Some-State]: 都市名を入力 Locality Name (eg, city) []: 市町村名を入力 Organization Name (eg, company) [Internet Widgits Pty Ltd]: 会社名名を入力 Organizational Unit Name (eg, section) []: 部課名を入力 Common Name (eg, YOUR name) []: 自分の名前を入力 Email Address []: メールアドレスを入力 roman# ls -l -rw-r--r-- 1 root wheel 1726 Nov 18 00:00 httpsd.pem roman# ----------------以上で、認証鍵の作製も終りました。これでもうばっちしでしょう(^^)。これであなたの FreeBSD もずいぶんとサーバらしくなりましたね。ばんざーーいっ!!
今後の課題ですが、httpsd でバーチャルホスティングの設定が出来るか?を検証したいです。こちらは追って追加して行きたいです。
最後に・・。SSL なサイトにアクセスする機会って結構少ないですよね。MSIE 3.02/4.0 なんて、もうぼろぼろです。セキュリティなんてあったモンじゃ無いです。ポリシーが「イカガワシイ所には行けないよ。」ってのがセキュリティのつもりで居るのでしょうね。MS/OS は・・(−″−#。僕の SSL サーバには MSIE では入る事が出来ません。ブラウザが許してくれないのです。最高のセキュリティですよね。MSIEってっ!!すごいっ!!(-"-)。
と、言う事で、こういう所を見てしまうと、Netscape って偉大だな。と感心させられます(^^)。一応、FreeBSD 版 4.04 でも 問題無く、認証を通過出来ます。
しねっ!! MSIE(-"-)。