apacheでウェブサーバを構築しよう!

  1. 材料
  2. apacheのインストール
    % tar zxvf apache-x.y.z.tar.gz
    % cd apache-x.y.z
    % ./configure
    % make
    % su
    # make install
    
  3. 設定しよう

apache+sslでウェブサーバを構築しよう!

  1. 材料
  2. opensslのインストール
    % tar zxvf openssl-a.b.c.tar.gz
    % cd openssl-a.b.c
    
    opensslのバージョンが0.9.5aの場合、opensslにパッチを当てる必要があります。パッチはapache-x.y.z.+ssl_d.e.tar.gzを展開するとあります。
    % patch -p1 < openssl-0.9.5a-egd.diff
    
  3. apache+sslのインストール
    % tar zxvf apache-x.y.z.tar.gz
    % cd apache-x.y.z
    % tar zxvf apache-x.y.z+ssl_d.e.tar.gz
    
    ここで展開されるopenssl-0.9.5a-egd.diffはopenssl-0.9.5aを使うためのパッチです。opensslをコンパイルする前に当てて下さい。opensslのインストール参照。
    % patch -p1 < SSLpatch
    % ./configure
    % make
    % su
    # make install
    
  4. 設定しよう
    注) 設定ファイルはhttpsd.confではなく、httpd.confです。間違えやすいので気をつけましょう!

    以下のDIRECTIVEについて設定しましょう。

    SSLCacheServerPort /path/to/gcache_port
      # 
    
    SSLCacheServerPath /path/to/gcache
      # 
    
    SSLSessionCacheTimeout 300
      # 
    
    SSLCertificateFile /path/to/server.cert
      # サーバ証明書のパス
    
    SSLCertificateKeyFile /path/to/secret_key.pem
      # サーバ秘密鍵のパス
    
    SSLVerifyClient 0
      # 
    
    SSLVerifyDepth 10
      # SSLの認証局の追跡を行う数
    
    SSLFakeBasicAuth
      # 
    
  5. サーバの秘密鍵を生成する
    乱数を生成し、これを使ってサーバの秘密鍵を生成します。また、pass phraseを聞かれるので考えておきましょう。後々、CSRやサーバ証明書を生成するのに必要になります。
    % openssl md5 * > seed.data
    % openssl genrsa -rand seed.data -des3 1024 > /path/to/secret_key.pem
    
  6. CSR(証明書発行要求)を生成する
    上で生成したサーバ秘密鍵のCSRを生成します。
    % openssl req -new -key /path/to/secret_key.pem -out /path/to/csr.pem
    
  7. サーバ証明書を生成する
    % openssl x509 -in /path/to/csr.pem -out /path/to/server.cert -req -signkey /path/to/secret_key.pem
    
  8. サーバの秘密鍵からpass phraseを削除する。
    サーバが自動起動するためには、pass phraseを削除しておく必要があります。ただし、セキュリティレベルはダウンします。
    % mv secret_key.pem secret_key.pem.protect
    % openssl rsa -in secret_key.pem.protect -out secret_key.pem
    

設定

  1. ディレクトリが指定された場合に読ませるファイルを指定するには?
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.shtml
    </IfModule>
    
  2. ローカルからのアクセスをログに残さないには?
    SetEnvIf Remote_Addr 192.168.0. no_log
    CustomLog /usr/local/apache/logs/access_log combined env=!no_log
    

Copyright(C) 2001-2008 ykondou.org
webmaster@ykondou.org
Key fingerprint = 7721 FB0E 42CC 2BD3 DB09 5868 3EC7 B5D2 B75C 5DAA

Valid CSS! Valid HTML 4.01!