ApacheをOpenSSLを有効にしてインストールApache 1.3系のSSLについて。 ダウンロード
最新版は以下を参照
最新版を使うことを推奨する。 2003.05.21時点の1.3系の最新は1.3.27となっている。 今回は以下のバージョンを使用する。
// 作業用ディレクトリ作成 # cd /usr/local/src # mkdir apache # cd apache // Apacheのダウンロード # wget http://hoge/download/apache/apache_1.3.27.tar.gz // OpenSSLのダウンロード # wget http://hoge/download/openssl/openssl-0.9.7b.tar.gz // mod_sslのダウンロード # wget http://hoge/download/modssl/mod_ssl-2.8.14-1.3.27.tar.gz コンパイルOpenSSL、Apache、mod_sslを組み合わせる場合、コンパイルには順序がある。 OpenSSLのコンパイル # tar xvfz openssl-0.9.7b.tar.gz # cd openssl-0.9.7b # ./config --prefix=/usr/local --openssldir=/usr/local/openssl -fPIC # make # cd ..
Apacheのソース展開 # tar xvfz apache_1.3.27.tar.gz mod_sslのコンフィグ 公開ディレクトリはデフォルトで/usr/local/apache/htdocsになる。 今回は/pub/www/htdocs以下に変更している。 同様にicons/やcgi-bin/も変更している。 この様に変更する場合はあらかじめ下の
# tar xvfz mod_ssl-2.8.14-1.3.27.tar.gz # cd mod_ssl-2.8.14-1.3.27 # OPTIM="-O2" ./configure \ --with-apache=../apache_1.3.27 \ --with-ssl=../openssl-0.9.7b \ --prefix=/usr/local/apache \ --enable-shared=ssl \ --enable-module=so \ --enable-rule=SHARED_CORE \ --enable-module=rewrite \ --enable-shared=rewrite \ --htdocsdir=/pub/www/htdocs \ --iconsdir=/pub/www/icons \ --cgidir=/pub/www/cgi-bin \ --enable-module=mod_proxy \ --enable-shared=mod_proxy 上記オプションではmod_proxyもDSOとして使用している。 # cd .. mod_sslのコンフィグにより、ApacheのMakefileが生成される。 したがってApacheにコンパイルオプションを追加する場合はmod_sslのコンフィグ時に追加しておく。 Apacheのコンパイル # cd apache_1.3.27 # make 証明書、鍵生成(質問に答える感じ) # make certificate ※サンプルitb-TECHを参考 コマンドを実行すると一問一答形式になりますのでQ&Aのサンプルを掲載しておきます。 -------------------------------------------------------------------------- Q1 Signature Algorithm ((R)SA or (D)SA) [R]: 暗号化方式は何を利用しますか? A1 RSAを使うのでRと入力してからリターンを押してください。 -------------------------------------------------------------------------- Q2 1. Country Name (2 letter code) [XY]: 証明書を発行するための情報です。国名を入力してください。 A2 日本なのでJPと入力しましょう。2byte分しか文字列をうけつけません。 -------------------------------------------------------------------------- Q3 2. State or Province Name (full name) [Snake Desert]: 証明書を発行するための情報です。都道府県名を入力してください。 A3 大阪なのでOsakaと入力しましょう。 -------------------------------------------------------------------------- Q4 3. Locality Name (eg, city) [Snake Town]: 証明書を発行するための情報です。市町村名を入力してください。 A4 京橋なのでKyobashiと入力しましょう。 -------------------------------------------------------------------------- Q5 4. Organization Name (eg, company) [Snake Oil, Ltd]: 証明書を発行するための情報です。組織名(会社名)を入力してください。 A5 ITBoostなのでITBoostと入力しましょう。 -------------------------------------------------------------------------- Q6 5. Organizational Unit Name (eg, section) [Webserver Team]: 証明書を発行するための情報です。部署名を入力してください。 A6 学生なのでStudentと入力してください。 -------------------------------------------------------------------------- Q7 6. Common Name (eg, FQDN) [www.snakeoil.dom]: 証明書を発行するための情報です。組織の通称を入力してください。 A7 特に通称はないのでそのままリターンキーを押してください。 -------------------------------------------------------------------------- Q8 7. Email Address (eg, name@FQDN) [www@snakeoil.dom]: 証明書を発行するための情報です。メールアドレスを入力してください。 A8 あなたのメールアドレスを入力してください。 -------------------------------------------------------------------------- Q9 8. Certificate Validity (days) [365]: 証明書の有効期限を入力してください。単位は日単位になります。 A9 3ヶ月有効にするため90と入力してください。 -------------------------------------------------------------------------- Q10 Certificate Version (1 or 3) [3]: 証明書のバージョンを指定してください。 A10 バージョン3を使うので3を入力してください。 -------------------------------------------------------------------------- Q11 Encrypt the private key now? [Y/n]: 証明書の暗号化を行いますか? A11 行うのでyを入力してください。 -------------------------------------------------------------------------- Q12 Enter PEM pass phrase: 4文字以上のパスワードを入力してください。 A12 適当なパスワードを入力してください。 -------------------------------------------------------------------------- Q13 Verifying password - Enter PEM pass phrase: パスワードを再入力してください。 A13 A12で入力したパスワードを再度入力してください。 -------------------------------------------------------------------------- インストール# make install /usr/local/apacheにインストールされる。 /usr/local/apache/bin/apachectl が起動や終了のコマンドとなる。 ファイルインストールされたファイルのいくつかを説明する。apache/bin/apachectlコマンド
apache/conf/httpd.confApacheの設定ファイル。モジュールの設定もこのファイルで行う。 かなり大きいファイルであり、全ての説明はできないが基本的に変更すべき箇所は少ない。 最低限変更すべきところのみ変更してみる。 # vi /usr/local/apache/conf/httpd.conf // ServerName {マシン名} ↓ ServerName zz_dell5 実行まずは設定ファイルのチェック。 # /usr/local/apache/bin/apachectl configtest エラーが出ず、 Systax OK と出力されればOK。 起動はSSLを使用するかしないかで方法が異なる。 通常起動# /usr/local/apache/bin/apachectl start を実行して /usr/local/apache/bin/apachectl start: httpd started と出力されればOK。 SSL起動# /usr/local/apache/bin/apachectl startssl Enter pass phrase: // SSL起動のパスワードを聞かれるのでパスワードを入力し Ok: Pass Phrase Dialog successful. /usr/local/apache/bin/apachectl startssl: httpd started と出力されればOK。 SSL起動時にパスワード入力を省略する方法# vi /usr/local/apache/conf/httpd.conf // SSLPassPhraseDialog builtin // の行をコメントアウトして以下を入力する SSLPassPhraseDialog exec:/usr/local/apache/bin/ssl-password #ファイルを保存する ------------------------------------------------------------ # echo "echo \"{パスワード}\"" > /usr/local/apache/bin/ssl-password // {パスワード}部分をパスワードに置き換える # chmod 700 /usr/local/apache/bin/ssl-password 確認してみる # /usr/local/apache/bin/apachectl stop /usr/local/apache/bin/apachectl stop: httpd stopped # /usr/local/apache/bin/apachectl startssl /usr/local/apache/bin/apachectl startssl: httpd started // パスワードを聞かれなかった サービス化Apacheをサービス化を参照。 ドキュメントルートの変更Apacheの公開ディレクトリを変更する方法。 バックアップ対象として/pub/www以下をバックアップ対象にしている場合を想定。
/pub/wwwが存在しない場合※パーミッションは用途に応じて適切な設定をする事。以下は/pubはkskグループ権限としている。 # mkdir /pub # chgrp ksk /pub # mkdir /pub/www コンパイルオプションで指定する方法Apache(mod_sslで指定)のconfigureで指定した場合は自動的にhttpd.confの内容が変更され、 htdocs等も指定場所にインストールされる。 httpd.confを変更する方法# vi /usr/local/apache/conf/httpd.conf DocumentRoot "/usr/local/apache/htdocs" // ↓ DocumentRoot "/pub/www/htdocs" <Directory "/usr/local/apache/htdocs"> // ↓ <Directory "/pub/www/htdocs"> Alias /manual/ "/usr/local/apache/htdocs/manual/" // ↓ Alias /manual/ "/pub/www/htdocs/manual/" <Directory "/usr/local/apache/htdocs/manual"> // ↓ <Directory "/pub/www/htdocs/manual"> この様に/usr/local/apache/htdocsの部分を全て/pub/www/htdocsに変更する。 同様に
シンボリックリンクで変更する方法シンボリックリンクを使用すれば、httpd.confを変更せずにドキュメントルートを変更できる。 // サービスの停止 # /etc/rc.d/init.d/httpd stop # cd /usr/local/apache // pub/www以下に移動するディレクトリをmvで移動 # mv htdocs /pub/www # mv icons /pub/www # mv cgi-bin /pub/www // 移動したディレクトリのシンボリックリンクを作成 # ln -s /pub/www/htdocs/ . # ln -s /pub/www/icons/ . # ln -s /pub/www/cgi-bin/ . 以上でhtdocsは
LinkWindows版
|