WEB(Apache)サーバー設定



##############################################################################
●WEBサーバー(Apache httpd)の設定


1) ApacheとPHPがインストールされているかチェック

[root@localhost ~]# rpm -qa | grep httpd
httpd-tools-2.2.15-29.el6.centos.i686
httpd-manual-2.2.15-29.el6.centos.noarch
httpd-2.2.15-29.el6.centos.i686           <-- インストールされている

[root@localhost ~]# rpm -qa | grep php
php-common-5.3.3-23.el6_4.i686
php-pdo-5.3.3-23.el6_4.i686
php-cli-5.3.3-23.el6_4.i686
php-pgsql-5.3.3-23.el6_4.i686
php-xml-5.3.3-23.el6_4.i686
php-5.3.3-23.el6_4.i686                   <-- インストールされている

2) インストールされていない場合はインストールする

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# yum -y install php


3) /etc/httpd/conf/httpd.conf の編集

    :
    :
# HTTPレスポンス情報のサーバー情報を最小限に抑える
#ServerTokens OS                <---コメントアウト
ServerTokens ProductOnly        <---サーバー名とポート番号のみ
    :
    :
#Timeout 60             <--- タイムアウトが短いので
Timeout 3000            <--- タイムアウトを長くする
    :
    :
#ServerAdmin root@localhost
ServerAdmin [email protected]
    :
    :
#ServerName www.example.com:80
ServerName www.gusuku.org:80        <--- サーバー名を設定
    :
    :

#    Options Indexes FollowSymLinks
    Options FollowSymLinks ExecCGI Includes

#    AllowOverride None
    AllowOverride All

    Order allow,deny
    Allow from all

    :
    :

    #UserDir disable            <--- ここをコメントアウト

    UserDir public_html         <--- ここのコメントを外す

    :
    :
# ユーザー用のディレクトリの定義部分のコメントを外し、以下のように修正

    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Options MultiViews SymLinksIfOwnerMatch ExecCGI Includes
    
        Order allow,deny
        Allow from all
    
    
        Order deny,allow
        Deny from all
    

    :
    :
#ServerSignature On
ServerSignature Off         <--- エラー応答時の情報を隠蔽
    :
    :
# DefaultLanguage nl        <--- ここはコメントのままが良い
    :
    :
#AddDefaultCharset UTF-8
AddDefaultCharset Off       <---デフォルトは指定しないほうが良い
    :
    :
#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi  <---CGIで使用できる拡張子を追加
AddHandler cgi-script .pl
AddHandler cgi-script .sh
    :
    :
#  を.html .htm でも使えるようにする
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
AddType text/html .shtml .html .htm
AddOutputFilter INCLUDES .shtml .html .htm
    :
    :


4) /etc/php.ini の編集

    :
    :
;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
    :
    :
;short_open_tag = Off
short_open_tag = On     <--- <?php だけでなく <? のみでもOKとする
    :
    :
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
    :
    :
;max_execution_time = 30
max_execution_time = 1800
    :
    :
;max_input_time = 60
max_input_time = 1800
    :
    :
memory_limit = 128M
    :
    :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    :
    :
;display_errors = Off
display_errors = On
    :
    :
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
    :
    :
;register_globals = Off
register_globals = On
    :
    :
;register_long_arrays = Off
register_long_arrays = On
    :
    :
;register_argc_argv = Off
register_argc_argv = On
    :
    :
;post_max_size = 8M
post_max_size = 2047M
    :
    :
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
    :
    :
;enable_dl = Off
enable_dl = On
    :
    :
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
    :
    :
file_uploads = On
    :
    :
;upload_max_filesize = 2M
upload_max_filesize = 2047M
    :
    :
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
    :
    :
;date.timezone =
date.timezone = "Asia/Tokyo"
    :
    :


5) /var/www/html 以下のファイルを公開用に編集する

    /var/www/html/index.html がホームページになる


6) 起動時に開始するように設定

[root@localhost ~]# chkconfig httpd on

すぐに開始するには以下のコマンドを実行する

[root@localhost ~]# service httpd start


5) サーバー移行時は以下のファイルをコピーする

/var/www/html
/var/www/cgi-bin

############################################################################
●WEBサーバーで SSL を使用する設定

参考サイト:
    Webサーバー間通信内容暗号化(Apache+mod_SSL)
    http://fedorasrv.com/apache-ssl.shtml

■mod_sslインストール

[root@localhost ~]# yum -y install mod_ssl ← mod_sslインストール


■WebサーバーSSL設定
● 準備

1) /etc/pki/tls/openssl.cnf の編集

    [ req_distinguished_name ]
        :
    countryName_default             = JP
        :
        :
    stateOrProvinceName_default     = Kanagawa
        :
        :
    localityName_default            = Yokohama-city
        :
        :
    0.organizationName_default      = gusuku.org
        :
        :
    #organizationalUnitName_default  =  <--- コメントのままで良い

    [ usr_cert ]
        :
        :
    # This is OK for an SSL server.
    # nsCertType = server
    nsCertType = server
        :
        :
    [ v3_ca ]
        :
        :
    # Some might want this also
    # nsCertType = sslCA, emailCA
    nsCertType = sslCA, emailCA

2)  /etc/pki/tls/misc/CA の修正

    証明書の有効期限を変更する場合は以下の部分を編集

    サーバ証明書等の有効期限
    #if [ -z "$DAYS" ] ; then DAYS="-days 365" ; fi # 1 year
    if [ -z "$DAYS" ] ; then DAYS="-days 3650" ; fi # 10 year  <--ここを変える

    CA証明書の有効期限
    #CADAYS="-days 1095"; # 3 years     <--- ここを変える
    CADAYS="-days 3650";  # 10 years    <--- ここを変える

(1)サーバー用秘密鍵作成

[root@localhost ~]# cd /etc/pki/tls/certs   <-- ディレクトリ移動

[root@localhost certs]# make server.key     <-- サーバー用秘密鍵作成
umask 77 ; \
        /usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
..............+++
...................................+++
e is 65537 (0x10001)
Enter pass phrase:              <-- 任意のパスワード応答※表示はされない
Verifying - Enter pass phrase:  <-- 任意のパスワード応答※表示はされない
[root@dns1 certs]#

サーバー用秘密鍵からパスワード削除
[root@localhost certs]# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:   <-- サーバー用秘密鍵作成時のパスワード応答
writing RSA key

※サーバー用秘密鍵からパスワードを削除するのは、Webサーバー起動時にパスワードを要求されないようにするため

(2)サーバー用公開鍵作成

[root@localhost certs]# make server.csr     <-- サーバー用公開鍵作成
umask 77 ; \
        /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
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) [JP]:JP            <-- 国名(空ENTER)
State or Province Name (full name) [Kanagawa]:  <-- 都道府県名(空ENTER)
Locality Name (eg, city) [Yokohama-city]:       <-- 市区町村名(空ENTER)
Organization Name (eg, company) [gusuku.org]:   <-- サイト名(空ENTER)
Organizational Unit Name (eg, section) []:      <-- 部門名(空ENTER)
Common Name (eg, your name or your server's hostname) []:www.gusuku.org <-- ホスト名
Email Address []:[email protected]                <-- 管理者メールアドレス

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:                        <-- 空ENTER
An optional company name []:                    <-- 空ENTER
[root@manta certs]#


(3)サーバー用証明書作成

[root@localhost certs]# openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 3650
Signature ok
subject=/C=JP/ST=Kanagawa/L=Yokohama-city/O=gusuku.org/CN=www.gusuku.org/[email protected]
Getting Private key
[root@localhost certs]#


[root@localhost certs]# chmod 400 server.*  <-- 所有者(root)のみ参照できるようにパーミッション変更

[root@localhost certs]# cd  <-- ホームディレクトリへ戻る


(4)SSL設定

[root@localhost ~]# vi /etc/httpd/conf.d/ssl.conf   <-- SSL設定ファイル編集


#  General setup for the virtual host, inherited from global configuration
#DocumentRoot "/var/www/html"
#ServerName www.example.com:44
DocumentRoot "/var/www/shtml"               <-- 変更
ServerName  www.gusuku.org:443      <-- 変更

#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/server.pem ← サーバー用証明書を指定

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/certs/server.key ← サーバー用秘密鍵を指定

■Apache設定反映
(1)Apache設定反映

[root@localhost ~]# /etc/rc.d/init.d/httpd restart  <-- Apache再起動
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]


戻る