内容へ移動
memo
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
server:apache
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== Apache ====== ===== セットアップ ===== ==== httpd.conf ==== === Basic 認証の設定例 === <Directory "/foo/bar"> AuthType Basic AuthName "web system administrator" AuthUserFile /foo/.htpasswd AuthGroupFile /dev/null require valid-user </Directory> === 特定のファイルに対してだけ Basic 認証を設定 === <Directory "/foo/bar"> Options ExecCGI FollowSymLinks AllowOverride Options AddHandler cgi-script .cgi <Files admin.cgi> AuthType Basic AuthName "web system administrator" AuthUserFile /foo/.htpasswd AuthGroupFile /dev/null require valid-user </Files> </Directory> === LDAP を使った Basic 認証 === Apache httpd 2.2 + mod_authz_ldap を使用\\ mod_authz_ldap は rpm, yum でインストール\\ httpd 2.2 では設定がいくつかのファイルに分かれているので、conf.d 以下のいずれかのファイルにモジュールのロード指定を記述しておきます。 LoadModule authz_ldap_module modules/mod_authz_ldap.so (例1) グループ名「wedge-svn」に所属するグループに対して許可 <code> <Location /wedge-svn> DAV svn SVNPath /data/svn/wedge <IfModule mod_authz_ldap.c> AuthType basic AuthzLDAPMethod ldap AuthName "Product source" AuthzLDAPServer 192.168.1.1 AuthzLDAPUserBase ou=Users,dc=osaka,dc=mki,dc=ne,dc=jp AuthzLDAPGroupBase ou=Groups,dc=osaka,dc=mki,dc=ne,dc=jp AuthzLDAPUserKey uid AuthzLDAPGroupKey cn AuthzLDAPMemberKey memberUid AuthzLDAPUserScope base require group wedge-svn </IfModule> </Location> </code> (例2) 正規表現で一致した URL の場合、LDAP の objectClass が inetOrgPerson のユーザに対して、SSL接続を使った認証のみ許可 <code> <LocationMatch "/trac/[^/]+/(login|browser)"> AuthType Basic AuthName "Trac" SSLRequireSSL <IfModule mod_authz_ldap.c> AuthzLDAPMethod ldap AuthzLDAPServer 192.168.1.1 AuthzLDAPUserBase ou=Users,dc=osaka,dc=mki,dc=ne,dc=jp AuthzLDAPGroupBase ou=Groups,dc=osaka,dc=mki,dc=ne,dc=jp AuthzLDAPUserKey uid AuthzLDAPGroupKey cn AuthzLDAPMemberKey memberUid AuthzLDAPUserScope base require ldap-attribute objectClass=inetOrgPerson </IfModule> </LocationMatch> </code> * require valid-user\\ 「require valid-user」を指定すると、LDAP に登録されているユーザすべてが許可されると思われます。 mod_authz_ldap を入れるとインストールされる、設定のサンプルファイル authz_ldap.conf には、''AuthzLDAPEngine on'' という記述がありますが、これを指定すると、httpd 再起動時に「AuthzLDAPEngine', perhaps misspelle」というメッセージが表示されますが、これは httpd のバグのらしいです。\\ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=164620 * 注意\\ LDAP のパスワード属性 userPassword のハッシュアルゴリズムが crypt(3) になっているとうまくいかないので、{MD5} または {SMD5} を使ってください。\\ 「[[http://www.ldap.jp/openldap/v23/man/slappasswd#%E5%88%B6%E9%99%90|crypt (3) によるハッシュ化はプラットフォームに依存するので注意すること。]]」 === MySQLを使った Basic 認証 === Ubuntu の場合: sudo apt-get install libapache2-mod-auth-mysql <code> <Directory /var/www> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all <IfModule mod_auth_mysql.c> Auth_MySQL_Socket /var/run/mysqld/mysqld.sock Auth_MySQL_Host localhost Auth_MySQL_User apache Auth_MySQL_Password password Auth_MySQL_DB apache Auth_MySQL_password_table auth Auth_MySQL_UserName_Field userid Auth_MySQL_Password_Field password Auth_MySQL_Encryption_Types Plaintext #Auth_MySQL_NoPasswd Off AuthName "Enter your ID and password" AuthType Basic <Limit POST GET> require valid-user </Limit> </IfModule> </Directory> </code> * 「Bad file descriptor: Could not open password file: (null)」が error.log に出力される場合。\\ mod_auth_mysql は mod_auth_basic よりも前にロードする必要があるそうです。\\ apache 2.2 の場合は、mods_enabled に対してシンボリックリンクをはる時、mod_auth_basic よりも前の順序にくる名前にしておきます。\\ (例) <code>ln -s ../mods-available/auth_mysql.load 0.auth_mysql.load</code> === 拡張子 gz のファイルに対して Content-Encoding: gzip を設定し、内容をブラウザに解凍して表示させる。(wwwstat の過去の解析結果表示など) === httpd.conf に AddEncoding x-gzip .gz .tgz を記述。 ==== ビルド ==== === Apache 2.0.54 と openssl-0.9.8 の組み合わせで SSL を有効にして make すると、「'PEM_F_DEF_CALLBACK' undeclared」というエラーになる。 === ssl_engine_pphrase.c に次の記述を追加。 <code c> #ifndef PEM_F_DEF_CALLBACK #define PEM_F_DEF_CALLBACK PEM_F_PEM_DEF_CALLBACK #endif </code> ==== 証明書 ==== * UCC証明書(SAN)を使ったため、サーバ名と証明書の CN が一致しなくなりエラーログに警告が記録される。\\ 「RSA server certificate CommonName (CN) `www.host.dom' does NOT match server name」\\ /etc/apache2/site-alilables/<設定ファイル> で CN を ServerName に、別名(SAN)を ServerAlias に記述します。\\ <code>ServerName www.host.dom <== 証明書の CN ServerAlias www.sub.host.dom <== 証明書の SAN(別名)</code> ===== トラブルシューティング ===== * _default_ VirtualHost overlap on port 443 というメッセージが表示される。\\ 次の行を /etc/apache2/ports.conf に記述する。 <code>NameVirtualhost *:443</code>
server/apache.txt
· 最終更新: 2011/07/19 16:30 (外部編集)
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ