Apache2.xでOWA(Outlook Web Access)用のリバースプロキシ環境構築
(注意)実はこの設定でリバースプロキシを構築した際、不具合があってうまくOWAを参照できなかったことがあった。一応、参考までに当時の手順を残しておく。
Apacheでリバースプロキシを構築し、バックエンドのOWA(Outlook Web Access)にリクエストを転送する手順を確認した。
これもWindowsサーバをインターネットに晒したくないための措置。
実装方法はいくつかあるようだが、動作確認がとれたのは以下の方法。
ApacheはCentOS上の2.x系、Exchangeは2003を使用。
■Apache側の設定メモ
Apacheのconfigure時、mod_ssl、mod_proxy、mod_headers等を組み込んだ。
※mod_headersは後述のRequestHeader設定のため必須
参考までに、動作確認時のLoadModuleは以下のとおり。davやrewriteはOWA連携の観点では必要なし。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule headers_module modules/mod_headers.so
conf/extra/httpd-vhosts.confは以下のように設定した。
※httpd.confでIncludeしておくこと。
ApacheはインターネットからのSSLリクエストを受信し(基本認証を使用するため、SSL必須)、バックエンドのExchangeにはhttpでリクエストを転送。
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
#
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80
NameVirtualHost 1.2.3.4:443 ←ApacheのIP
ProxyRequests Off
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any
#
ServerAdmin root@localhost
ServerName www.miracosta.co.jp
DocumentRoot /var/www/exchange
RequestHeader set Front-End-Https "On" ←Outlook Web Access連携のため必須
ProxyRequests Off
ProxyPreserveHost On
SSLEngine On
SSLCertificateFile /usr/local/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/httpd/conf/ssl.key/server.key
ProxyPass http://1.2.3.10/exchange ←バックエンドのExchangeのIPを指定すること
ProxyPassReverse http://1.2.3.10/exchange
SSLRequireSSL
ProxyPass http://1.2.3.10/exchweb
ProxyPassReverse http://1.2.3.10/exchweb
SSLRequireSSL
ProxyPass http://1.2.3.10/public
ProxyPassReverse http://1.2.3.10/public
SSLRequireSSL
OMA(Outlook Mobile Access)用の環境もあるのであれば、Locationを追記する必要がある。
■Exchange側の設定
Exchangeサーバ上のIISで、仮想ディレクトリExchangeのWindows統合認証を解除すること。
また、受信メール本文に記載されたURLリンクを辿るためには、仮想ディレクトリExchWeb/binで基本認証をオンにすること。規定のドメインも設定しておく。
■参考URL
HOWTO: OWA 2K/2K3 Front-end SSL Proxy with Apache 2.0
http://3cx.org/item/46
Protecting OWA with Apache
http://blog.scottlowe.org/2005/12/03/protecting-owa-with-apache/
ApacheReverseProxy
http://www.wlug.org.nz/ApacheReverseProxy
Xampp-ReverseProxy-fuer-Exchange-OWA-09.pdf
http://media.plominski.de/docs/Xampp-ReverseProxy-fuer-Exchange-OWA-09.pdf