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 root@gusuku.org
:
:
#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 []:root@gusuku.org <-- 管理者メールアドレス
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/emailAddress=root@gusuku.org
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 ]
戻る