Fedra2Apache
の編集
index.php?Fedra2Apache
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#contents * Virtual Server で SSL 接続をサポートする [#i4836d19] - Fedra2 環境に以降するにあたり、以下の内容を実現しようと考えた -- Virtual server の設定により www, www-SSL, wiki, webmail を独立させる --- 従来 https://www.hmuna.com/wiki としていたものを https://wiki.hmuna.com/ としたい -- 各エントリーに対して SSL 通信を確保する -- SSL 認証関係を統合して管理する (従来は Apache系、Mail系が別々だった) -- 各 virtual server 毎にページ内でユーザ認証を行えるようにしたい (Digest 認証を使いたい) -- webmail が使えるようにしたい ** SSL と virtual server の関係 [#x7516407] - virtual server の設定は /etc/httpd/conf/httpd.conf で行っている。 - しかし このスクリプトの実行よりも先にSSL 通信確立が行われる。 -- 接続先毎に IP を分けた(=IP based)virtual server なら個々に SSL 設定が可能 -- 名前だけによる(=Name based、DNS エントリー上の同一IPに複数の名前を定義)では、SSL 対応が出来ない.... が一般解釈 - virtual server アクセス時にポートを明示的に指定させることで、Name based virtual server の SSL 化が出来ることがわかった。 ** /etc/httpd/conf/httpd.conf と /etc/httpd/conf.d/ssl.conf の設定を編集 [#bb890b22] *** httpd.conf の編集 [#k87d6e9b] - Listen port の設定はここに書いた (ssl.conf の設定は無効にした) - 2005-1-1 時点での httpd.conf → &ref(httpd.conf); - 2005-10-24 時点での httpd.conf → &ref(httpd.conf_20051024); # # Use name-based virtual hosting. # #NameVirtualHost *:80 #NameVirtualHost www.hmuna.com NameVirtualHost *:443 NameVirtualHost *:9443 NameVirtualHost *:9444 # Munakata add virtual host entry for WWW page #<VirtualHost www.hmuna.com> # ServerAdmin root@hmuna.com # DocumentRoot /var/www/html/htdocs # ServerName www.hmuna.com #</VirtualHost> # Munakata add virtual host entry for PukiWiki page #<VirtualHost wiki.hmuna.com> # ServerAdmin root@hmuna.com # DocumentRoot /var/www/html/pukiwiki/ # ServerName wiki.hmuna.com #</VirtualHost> *** ssl.conf の編集 [#x6f3e43e] - Virtual server の設定はここに書いた - 認証関係は 各 Virtual server directive の中に設定した - 2005-1-1 時点での ssl.conf → &ref(ssl.conf); - 2005-10-24 時点での ssl.conf → &ref(ssl.conf_20051024); </VirtualHost> # ---------------------------------------------------------------------------------------------------------------------------------- # muna add virtual host entry for webmail (443) # ----------------------------------------------------------------------------------------------------------------------------------- ## ## SSL Virtual Host Context (443) ## <VirtualHost _default_:443> DocumentRoot "/var/www/html/htdocs" ServerName webmail.hmuna.com:443 ServerAdmin munakata@hmuna.com # Server Certificate: SSLCertificateFile /usr/local/certs/webmail_server.crt # Server Private Key: SSLCertificateKeyFile /usr/local/certs/server.key # Certificate Authority (CA): SSLCACertificatePath /usr/local/certs/demoCA SSLCACertificateFile /usr/local/certs/demoCA/cacert.pem # muna add Revocation File # temporaly disabled by muna #SSLCARevocationFile /usr/local/certs/demoCA/crl/crl.pem # muna modify only trust CA direct certfication # now disable client verification #SSLVerifyClient require #SSLVerifyDepth 1 # muna enables .htaccess control inder www-ssl data directory <Directory "/var/www/html/webmail"> AllowOverride All </Directory> </VirtualHost> # ----------------------------------------------------------------------------------------------------------------------------------- # muna add virtual host entry for wiki (9443) # ---------------------------------------------------------------------------------------------------------------------------------- ## ## SSL Virtual Host Context (9443) ## <VirtualHost _default_:9443> # munakata add SSL virtual host entry DocumentRoot "/var/www/html/pukiwiki" ServerName wiki.hmuna.com:9443 ServerAdmin munakata@hmuna.com # ----------------------------------------------------------------------------------------------------------------------------------- # muna add virtual host entry for webmail (9444) # ----------------------------------------------------------------------------------------------------------------------------------- ## ## SSL Virtual Host Context (9444) ## <VirtualHost _default_:9444> DocumentRoot "/var/www/html/webmail" ServerName webmail.hmuna.com:9444 ServerAdmin munakata@hmuna.com ** virtual server データディレクトリーのパーミション設定 [#m88b45ad] - 設定がおかしいと本来のページにアクセスされない -- ページなし(404)にならず、default のページにリダイレクトされる -- これは SSL 無しのページなので、設定上不味い。 理由を解析する必要がある - /var/www/html の下の設定確認 -- 各ディレクトリー下のパーミションは 755 にした -- 各ディレクトリー下のオーナーは apache.apache にした [root@power certs]# ls -al /var/www/html/ 合計 16 drwxr-xr-x 3 root root 4096 1月 1 19:56 . drwxr-xr-x 8 root root 4096 11月 13 00:20 .. drwxr-xr-x 2 apache apache 4096 12月 31 18:13 htdocs -rwxrwxrwx 1 apache apache 18 12月 25 08:00 info.php lrwxrwxrwx 1 apache apache 20 12月 25 08:51 pukiwiki -> /var/pukiwiki- 1.4.4/ lrwxrwxrwx 1 apache apache 24 1月 1 19:56 webmail -> /usr/share/squirrelmail/ * Virtual Server の認証の設定 [#k57b1930] ** Digest 認証の設定 [#u87136e2] - /etc/httpd/conf.d/ssl.conf の設定 # muna adopt digest authrization to wiki space <Directory "/var/www/html/pukiwiki"> Options Indexes FollowSymlinks AllowOverride None Order allow,deny Allow from all AuthType Digest AuthName "private wiki" AuthDigestFile /usr/local/certs/secret_wiki_digest Require vallid-user </Directory> - /usr/local/serts/secret_wiki_digest の作成 -- ここで指定する RELM(”private wiki” の部分)が上記の定義と一致している必要があるようだ (名前とパスワード以前に) [root@power certs]# htdigest -c secret_wiki_digest "private wiki" munakata Adding password for munakata in realm private wiki. New password: ← nananamuna Re-type new password: - 一般ユーザーから認証ファイルが見えないようにパーミションを変更 [root@power certs]# chown apache.apache secret_wiki_digest [root@power certs]# chmod 600 secret_wiki_digest [root@power certs]# ls -l 合計 24 drwxr-xr-x 6 root root 4096 12月 30 21:35 demoCA -rw-r--r-- 1 root root 1839 12月 30 21:43 mail.pem -rw------- 1 apache apache 55 12月 31 09:26 secret_wiki_digest -rw-r--r-- 1 root root 952 12月 30 21:37 server.crt -rw-r--r-- 1 root root 708 12月 30 21:29 server.csr -rw-r--r-- 1 root root 887 12月 30 21:24 server.key [root@power certs]# cat secret_wiki_digest munakata:private wiki:bec8fa7b1226a242f6a0c367d070fe42 - これで Digest 認証で正常に Top page まで入れることを確認した。 - IE6 では wiki のリンク先にアクセスするとエラーになることが判った。 - log を見ると [Fri Dec 31 22:18:29 2004] [error] [client 192.168.1.12] Digest: uri mismatch - </> does not match request-uri </?DVD_VideoEdit>, referer: https://wiki.hmuna.com:9443/ となっている。 Mozilla や Firefox では問題なく表示できるので IE6 固有の問題と思われる。 ** BASIC 認証への設定 [#a33dcddb] - 上記の問題の回避のため、BASIC 認証の設定を行う - /etc/httpd/conf.d/ssl.conf の中の Virtual Server 毎の定義部に追加する - この設定により、virtual server 毎の認証方法を決めることができた。 -- WWW-SSL については Digest 認証、 wiki は BASIC 認証、 webmail は認証なし # instead, I adopt basic authrization <Directory "/var/www/html/pukiwiki"> Options Indexes FollowSymlinks AllowOverride None Order allow,deny Allow from All AuthType Basic AuthName "Enter private wiki password" AuthUserFile /usr/local/certs/secret_wiki_basic Require valid-user </Directory> - BASIC 認証用のパスワードファイルの作成 [root@power root]# cd /usr/local/certs/ [root@power certs]# htpasswd -c secret_wiki_basic munakata New password: ← "nananamuna" Re-type new password: Adding password for user munakata [root@power certs]# htpasswd -c *** httpd [root@power certs]# chown apache.apache secret_wiki_basic [root@power certs]# ls -l secret_wiki_basic -rw------- 1 apache apache 23 1月 2 10:33 secret_wiki_basic * SSL の自動起動 [#k16d806e] - /etc/rc.d/inetd/httpd の内容を編集する (一箇所追加のみ) # # muna modify to start SSL # start() { echo -n $"Starting $prog: " check13 || exit 1 # daemon $httpd $OPTIONS daemon $httpd -D SSL $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL } ** 起動直後のポートの確認 (SSL で起動していることの確認) [#q1e8242c] - 起動すると 443(www-SSL),9443(wiki),9444(webmail) が LISTEN になっている [root@power root]# netstat -an --tcp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:32770 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:32771 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:32772 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:1007 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:9010 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:988 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN tcp 0 0 :::9443 :::* LISTEN tcp 0 0 :::9444 :::* LISTEN tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 :::443 :::* LISTEN tcp 0 1380 ::ffff:192.168.1.17:22 ::ffff:192.168.1.1:2036 ESTABLISHED tcp 0 0 ::ffff:192.168.1.1:9443 ::ffff:192.168.1.1:2055 TIME_WAIT [root@power root]#
タイムスタンプを変更しない
#contents * Virtual Server で SSL 接続をサポートする [#i4836d19] - Fedra2 環境に以降するにあたり、以下の内容を実現しようと考えた -- Virtual server の設定により www, www-SSL, wiki, webmail を独立させる --- 従来 https://www.hmuna.com/wiki としていたものを https://wiki.hmuna.com/ としたい -- 各エントリーに対して SSL 通信を確保する -- SSL 認証関係を統合して管理する (従来は Apache系、Mail系が別々だった) -- 各 virtual server 毎にページ内でユーザ認証を行えるようにしたい (Digest 認証を使いたい) -- webmail が使えるようにしたい ** SSL と virtual server の関係 [#x7516407] - virtual server の設定は /etc/httpd/conf/httpd.conf で行っている。 - しかし このスクリプトの実行よりも先にSSL 通信確立が行われる。 -- 接続先毎に IP を分けた(=IP based)virtual server なら個々に SSL 設定が可能 -- 名前だけによる(=Name based、DNS エントリー上の同一IPに複数の名前を定義)では、SSL 対応が出来ない.... が一般解釈 - virtual server アクセス時にポートを明示的に指定させることで、Name based virtual server の SSL 化が出来ることがわかった。 ** /etc/httpd/conf/httpd.conf と /etc/httpd/conf.d/ssl.conf の設定を編集 [#bb890b22] *** httpd.conf の編集 [#k87d6e9b] - Listen port の設定はここに書いた (ssl.conf の設定は無効にした) - 2005-1-1 時点での httpd.conf → &ref(httpd.conf); - 2005-10-24 時点での httpd.conf → &ref(httpd.conf_20051024); # # Use name-based virtual hosting. # #NameVirtualHost *:80 #NameVirtualHost www.hmuna.com NameVirtualHost *:443 NameVirtualHost *:9443 NameVirtualHost *:9444 # Munakata add virtual host entry for WWW page #<VirtualHost www.hmuna.com> # ServerAdmin root@hmuna.com # DocumentRoot /var/www/html/htdocs # ServerName www.hmuna.com #</VirtualHost> # Munakata add virtual host entry for PukiWiki page #<VirtualHost wiki.hmuna.com> # ServerAdmin root@hmuna.com # DocumentRoot /var/www/html/pukiwiki/ # ServerName wiki.hmuna.com #</VirtualHost> *** ssl.conf の編集 [#x6f3e43e] - Virtual server の設定はここに書いた - 認証関係は 各 Virtual server directive の中に設定した - 2005-1-1 時点での ssl.conf → &ref(ssl.conf); - 2005-10-24 時点での ssl.conf → &ref(ssl.conf_20051024); </VirtualHost> # ---------------------------------------------------------------------------------------------------------------------------------- # muna add virtual host entry for webmail (443) # ----------------------------------------------------------------------------------------------------------------------------------- ## ## SSL Virtual Host Context (443) ## <VirtualHost _default_:443> DocumentRoot "/var/www/html/htdocs" ServerName webmail.hmuna.com:443 ServerAdmin munakata@hmuna.com # Server Certificate: SSLCertificateFile /usr/local/certs/webmail_server.crt # Server Private Key: SSLCertificateKeyFile /usr/local/certs/server.key # Certificate Authority (CA): SSLCACertificatePath /usr/local/certs/demoCA SSLCACertificateFile /usr/local/certs/demoCA/cacert.pem # muna add Revocation File # temporaly disabled by muna #SSLCARevocationFile /usr/local/certs/demoCA/crl/crl.pem # muna modify only trust CA direct certfication # now disable client verification #SSLVerifyClient require #SSLVerifyDepth 1 # muna enables .htaccess control inder www-ssl data directory <Directory "/var/www/html/webmail"> AllowOverride All </Directory> </VirtualHost> # ----------------------------------------------------------------------------------------------------------------------------------- # muna add virtual host entry for wiki (9443) # ---------------------------------------------------------------------------------------------------------------------------------- ## ## SSL Virtual Host Context (9443) ## <VirtualHost _default_:9443> # munakata add SSL virtual host entry DocumentRoot "/var/www/html/pukiwiki" ServerName wiki.hmuna.com:9443 ServerAdmin munakata@hmuna.com # ----------------------------------------------------------------------------------------------------------------------------------- # muna add virtual host entry for webmail (9444) # ----------------------------------------------------------------------------------------------------------------------------------- ## ## SSL Virtual Host Context (9444) ## <VirtualHost _default_:9444> DocumentRoot "/var/www/html/webmail" ServerName webmail.hmuna.com:9444 ServerAdmin munakata@hmuna.com ** virtual server データディレクトリーのパーミション設定 [#m88b45ad] - 設定がおかしいと本来のページにアクセスされない -- ページなし(404)にならず、default のページにリダイレクトされる -- これは SSL 無しのページなので、設定上不味い。 理由を解析する必要がある - /var/www/html の下の設定確認 -- 各ディレクトリー下のパーミションは 755 にした -- 各ディレクトリー下のオーナーは apache.apache にした [root@power certs]# ls -al /var/www/html/ 合計 16 drwxr-xr-x 3 root root 4096 1月 1 19:56 . drwxr-xr-x 8 root root 4096 11月 13 00:20 .. drwxr-xr-x 2 apache apache 4096 12月 31 18:13 htdocs -rwxrwxrwx 1 apache apache 18 12月 25 08:00 info.php lrwxrwxrwx 1 apache apache 20 12月 25 08:51 pukiwiki -> /var/pukiwiki- 1.4.4/ lrwxrwxrwx 1 apache apache 24 1月 1 19:56 webmail -> /usr/share/squirrelmail/ * Virtual Server の認証の設定 [#k57b1930] ** Digest 認証の設定 [#u87136e2] - /etc/httpd/conf.d/ssl.conf の設定 # muna adopt digest authrization to wiki space <Directory "/var/www/html/pukiwiki"> Options Indexes FollowSymlinks AllowOverride None Order allow,deny Allow from all AuthType Digest AuthName "private wiki" AuthDigestFile /usr/local/certs/secret_wiki_digest Require vallid-user </Directory> - /usr/local/serts/secret_wiki_digest の作成 -- ここで指定する RELM(”private wiki” の部分)が上記の定義と一致している必要があるようだ (名前とパスワード以前に) [root@power certs]# htdigest -c secret_wiki_digest "private wiki" munakata Adding password for munakata in realm private wiki. New password: ← nananamuna Re-type new password: - 一般ユーザーから認証ファイルが見えないようにパーミションを変更 [root@power certs]# chown apache.apache secret_wiki_digest [root@power certs]# chmod 600 secret_wiki_digest [root@power certs]# ls -l 合計 24 drwxr-xr-x 6 root root 4096 12月 30 21:35 demoCA -rw-r--r-- 1 root root 1839 12月 30 21:43 mail.pem -rw------- 1 apache apache 55 12月 31 09:26 secret_wiki_digest -rw-r--r-- 1 root root 952 12月 30 21:37 server.crt -rw-r--r-- 1 root root 708 12月 30 21:29 server.csr -rw-r--r-- 1 root root 887 12月 30 21:24 server.key [root@power certs]# cat secret_wiki_digest munakata:private wiki:bec8fa7b1226a242f6a0c367d070fe42 - これで Digest 認証で正常に Top page まで入れることを確認した。 - IE6 では wiki のリンク先にアクセスするとエラーになることが判った。 - log を見ると [Fri Dec 31 22:18:29 2004] [error] [client 192.168.1.12] Digest: uri mismatch - </> does not match request-uri </?DVD_VideoEdit>, referer: https://wiki.hmuna.com:9443/ となっている。 Mozilla や Firefox では問題なく表示できるので IE6 固有の問題と思われる。 ** BASIC 認証への設定 [#a33dcddb] - 上記の問題の回避のため、BASIC 認証の設定を行う - /etc/httpd/conf.d/ssl.conf の中の Virtual Server 毎の定義部に追加する - この設定により、virtual server 毎の認証方法を決めることができた。 -- WWW-SSL については Digest 認証、 wiki は BASIC 認証、 webmail は認証なし # instead, I adopt basic authrization <Directory "/var/www/html/pukiwiki"> Options Indexes FollowSymlinks AllowOverride None Order allow,deny Allow from All AuthType Basic AuthName "Enter private wiki password" AuthUserFile /usr/local/certs/secret_wiki_basic Require valid-user </Directory> - BASIC 認証用のパスワードファイルの作成 [root@power root]# cd /usr/local/certs/ [root@power certs]# htpasswd -c secret_wiki_basic munakata New password: ← "nananamuna" Re-type new password: Adding password for user munakata [root@power certs]# htpasswd -c *** httpd [root@power certs]# chown apache.apache secret_wiki_basic [root@power certs]# ls -l secret_wiki_basic -rw------- 1 apache apache 23 1月 2 10:33 secret_wiki_basic * SSL の自動起動 [#k16d806e] - /etc/rc.d/inetd/httpd の内容を編集する (一箇所追加のみ) # # muna modify to start SSL # start() { echo -n $"Starting $prog: " check13 || exit 1 # daemon $httpd $OPTIONS daemon $httpd -D SSL $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL } ** 起動直後のポートの確認 (SSL で起動していることの確認) [#q1e8242c] - 起動すると 443(www-SSL),9443(wiki),9444(webmail) が LISTEN になっている [root@power root]# netstat -an --tcp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:32770 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:32771 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:32772 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:1007 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:9010 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:988 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN tcp 0 0 :::9443 :::* LISTEN tcp 0 0 :::9444 :::* LISTEN tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 :::443 :::* LISTEN tcp 0 1380 ::ffff:192.168.1.17:22 ::ffff:192.168.1.1:2036 ESTABLISHED tcp 0 0 ::ffff:192.168.1.1:9443 ::ffff:192.168.1.1:2055 TIME_WAIT [root@power root]#
テキスト整形のルールを表示する
添付ファイル:
ssl.conf_20051024
22件
[
詳細
]
ssl.conf
23件
[
詳細
]
httpd.conf
22件
[
詳細
]
httpd.conf_20051024
21件
[
詳細
]