httpsd(SSL Server)でも作ってみるぅ?

 えっと、apache-1.2.6+SSL に対応したページを作りました。改定版です。後、CA の作り方、認証書の発行に付いても書かれています。そちらを参考にしてください。こちらはそろそろ消す可能性があります(^^;;。と、言う事で
『httpsd(SSL Server)と自分の CA を作るっ!!(改定 apache_1.2.6 版)』
こちらをどうぞ。

 apache-1.2.4 に SSL の機能を持たせて、自分の FreeBSD に SSL サーバを立ててみましょう。これであなたの FreeBSD は一目置かれる、立派なサーバとなります(^^)V。

 ただ、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 を行い、環境を整えます。
*2. サンプルの Certsification ファイルの作成を行います。
*3. SSL が正しく make 出来たかの確認を行います。

 一応、これで 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 も既存のモノを利用してもらって特に問題は無いです。
 httpd.conf には追加する項目を指定します。
----------------
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(-"-)。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.