プロジェクト

全般

プロフィール

Apache

Apache2.2.27で検証

httpd.conf設定

・エラーページ等でOS名を表示しないようにする

#ServerTokens OS
ServerTokens Prod

・DocumentRootの設定

DocumentRoot "/var/www/html" 

・エラーページでサーバー情報を表示しないようにする

#ServerSignature On   
ServerSignature Off 

・DNSやWINS、HOSTSファイルなどで名前解決できるならホスト名を設定する
・名前解決できなければサーバのIPアドレスを設定する。

#ServerName www.example.com:80
ServerName 192.168.1.10

・アクセスファイル指定あまりいじらない、デフォルトのまま

AccessFileName .htaccess

・ディレクトリのファイル一覧を見えなくする

# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
#Options Indexes FollowSymLinks
Options -Indexes FollowSymLinks

・特定のファイルを見えなくする

<Files ~ "\.log$">
  deny from all 
</Files>

ベーシック認証

①設定httpd.confに書く場合
vi /etc/httpd/conf/httpd.conf

・ベーシック認証に必要な設定

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All

AllowOverrideには、以下の値を設定可能。

・All
全ての規制を設定できる。

・AuthConfig
認証に関するディレクティブの使用を許可する (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require など)。

・FileInfo
ドキュメントタイプを制御するディレクティブ (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime の Add* と Remove* ディレクティブなど)、 ドキュメントのメタデータを制御するディレクティブ (Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName), mod_rewrite のディレクティブ RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule) と mod_actions の Action ディレクティブの使用を許可する。

・Indexes
ディレクトリインデックスを制御するためのディレクティブの使用を許可する (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName など)。

・Limit
ホストへのアクセス制御を行うためのディレクティブの使用を許可する (Allow, Deny, Order).

・None
全ての規制を無視する。

②下記設定を追記。
例 /var/www/html/testにベーシック認証をかけたい場合。

<Directory /var/www/html/test>
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Directory>

5系、6系 service httpd restart
7系 systemctl restart httpd

③.htaccessファイルを対象ディレクトリに配置する場合。

/var/www/html/test/に.htaccessを作成する。
※httpd.confに設定は書かない。

vi /var/www/html/test/.htaccess

AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

5系、6系 service httpd restart
7系 systemctl restart httpd

SSL設定

[root@test ~]# vi /etc/httpd/conf.d/ssl.conf
# General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/www/html/"

#   Server Certificate:
       ~省略~
SSLCertificateFile /etc/pki/CA/certs/サーバー証明書  ←追記する

#   Server Private Key:
      ~省略~  
SSLCertificateKeyFile /etc/pki/CA/private/秘密鍵  ←追記する

#   Server Certificate Chain:
       ~省略~
SSLCertificateChainFile /etc/pki/CA/certs/中間CA証明書  ←追記する

トラブルシューティング

①Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs

・発生タイミング
httpd起動停止時

・原因
httpdのプロセスが残っている

・対処(プロセス確認、KILL)

ps -ef | grep -i httpd
pkill -9 -f httpd

②httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.23.12 for ServerName

・発生タイミング
httpd起動停止時

・原因
ServerName www.example.com:80にコメントがあると発生する。

#ServerName www.example.com:80

・対処
DNSやWINS、HOSTSファイルなどで名前解決できるならホスト名を設定する。
名前解決できなければサーバのIPアドレスを設定する。

③Apacheではないけどクライアントのブラウザのキャッシュクリア

・IE
インターネット一時ファイルおよびWebサイトのファイル(T)
クッキーとWebサイトデータ(O)

上記を削除する。

メモ