ネットワークサーバの構築のページに戻る

Apache-SSLサーバの構築

Apacheに暗号通信機能を追加するためのApache-SSLのパッチを当てたサーバです。 Apache-SSLは SSL ライブラリを呼び出しますが、このSSLライブラリには ここではOpenSSLを使います(SSLeayでも可能と思います) (このOpenSSLには暗号通信のキーの作成などにも使います)


インストール

OpenSSLのインストール

OpenSSLはSSLのライブラリです。SSL 機能付き Apache は SSL 通信を行う際に このライブラリを使って、暗号化、復号を行います。

makeするには以下のコマンドを実行します。


% ./config

% make

% make test

% make install

ApacheとApache-SSLのインストール

ApacheをSSL対応にするために Apache-SSLをパッチとしてあてて、 makeする

% tar zxvf apache_1.3.12.tar.gz

% cd apache_1.3.12

% tar zxvf apache_1.3.12+ssl_1.39.tar.gz

% patch < SSLpatch

ここでapache_1.3.12/src/Configurationを以下のように編集する

KEYNOTE_BASE=/usr/local/ssl/KeyNote

SSL_BASE=/usr/local/ssl

SSL_INCLUDE= -I$(SSL_BASE)/include

SSL_CFLAGS= -DAPACHE_SSL

SSL_LIB_DIR= $(SSL_BASE)/lib

SSL_LIBS= -L$(SSL_LIB_DIR) -lssl -lcrypto

SSL_APP_DIR= $(SSL_BASE)/bin

SSL_APP=/usr/local/ssl/bin/openssl

この後コンパイルする

% cd apache_1.3.12/src

% ./Configure

% make

インストールする

# mkdir /usr/local/apache_ssl

# sh

# for i in cgi-bin conf htdocs icons logs

> do cp -r $i /usr/local/apache_ssl

> done

# exit

# mkdir /usr/local/apache_ssl/bin

# cp src/httpsd /usr/local/apache_ssl/bin

# cp src/modules/ssl/gcache /usr/local/apache_ssl/bin

# cp conf/httpd.conf-dist /usr/local/apache_ssl/conf/httpd.conf

# cat SSLconf/conf/httpd.conf >> /usr/local/apache_ssl/conf/httpd.conf

# mkdir /usr/local/apache_ssl/certs

/usr/local/apache_ssl/conf/httpd.confの編集
ここではとくにSSLのdirectiveについて、記述する。 directiveについては、htdocs/manual/の下にあります。 日本語マニュアルは こちらを参照してください。

変更前変更後
"@@ServerRoot@@"(数箇所あるのですべて書き換える) "/usr/local/apache-ssl"
ServerAdmin ServerAdmin root@kitakyu-techno-ctr.co.jp
ServerName ServerName hibiki.kitakyu-techno-ctr.co.jp
(最初の)Port 80#Port 80(コメントアウト)(後の方にPort 8887があるので)
User benコメントアウト
Group benコメントアウト
Port 8887
Listen 8887
Listen 8888
Port 443
Listen 443
DocumentRoot... DocumentRoot /usr/local/apache_ssl/htdocs
<Directory... <Directory /usr/local/apache_ssl/htdocs/manual>
SSLCACertificatePath... SSLCACertificatePath /usr/local/apache_ssl/certs
SSLCertificateFile... SSLCertificateFile /usr/local/apache_ssl/certs/httpsd.pem
SSLCacheServerPath... SSLCacheServerPath /usr/local/apache_ssl/bin/gcache
AllowOverride None(何箇所かある:.htaccessでの制限に必要) AllowOverride AuthConfig Limit

Certificate Fileの作成

ここでは自己署名型の証明書を使う例を説明します。

PEM形式の認証ファイルを作成し、それをhttpd.conf のSSLCertificateFile で指定した位置にそれを置きます。


# cd /usr/local/apache_ssl/certs

# /usr/local/ssl/bin/openssl req -new -x509 -nodes -out httpsd.pem -keyout httpsd.pem

...

...

...

Country Name (2 letter code) [AU]:JP

State or Province Name (full name) [Some-State]:Fukuoka

Locality Name (eg, city) []:Kitakyushu

Organization Name (eg, company) [Internet Widgits Pty Ltd]:Kitakyushu Technology

 Center

Organizational Unit Name (eg, section) []:Kitakyushu Industrial Information Cent

er

Common Name (eg, YOUR name) []:hibiki

Email Address []:root@kitakyu-techno-ctr.co.jp

#

これによって httpsd.pem がカレントディレクトリにできます。 このファイルは秘密キーと証明書が含まれています。 有効期限などが含まれていますし、安全のためにも定期的に このファイルは上記のコマンドで作り直す方がよいと思われます。

起動

/usr/local/apache_ssl/bin/httpsd -f /usr/local/apache_ssl/conf/httpd.conf

CAのチェインを実現する方法

工事中

参照リンク


「サーバの構築」のページへ戻る ホームへ戻る