443ポートはほかでも使うかもしれないよね。
※ZarafaとZ-pushの設定はこちらで。
バーチャルホストで同期するホストを変えようと思う。ただ、プロバイダーから振り出されるIPアドレスは1つなわけで、ホスト名だけを変えた所でIPアドレスは一緒。ぜんぜん違う感を出すためにはポート番号も変えてしまおうという考え。
一言で言うならば、
https://m.hogeserver.hogeddns.jp:10443/Microsoft-Server-ActiveSync/
でアクセスできる環境を作ろうという話。
後から考えれば、サーバーに新しいIPアドレスを振ってあげれば、ちゃんとVirtualHost機能を使えるんじゃないかと思い直して訂正。2013/06/22追記
最初に、サーバーにIPアドレスを追加する。
GUIを使って固定のIPアドレス 172.16.nnn.nn2 を追加した。方法は省略。2013/06/22追記
LAN外からのアクセスのために・・・
名前解決ができなければどうしようもないので、DynamicDNSサービスに m を登録して名前解決ができるようにする。
そして、ルーターのNAPT設定で 10443 をサーバーの172.16.nnn.nn2にスルーする設定にする。
さらに、Firewallで10443/tcpポートを開ける。
LAN内からのアクセスのために・・・
内向きDNSに m.hogeserver で名前解決ができるようにしなければならない。そのためには、ゾーンファイルの書き換えだ。bind9を止める。
$ sudo service bind9 stop
ゾーンファイルに以下を追記。
/var/cache/bind/db.hogeserver.zone
m CNAME hogeserver 2012/06/23変更
m A 172.16.nnn.nn2
逆引きゾーンファイルに以下を追記。
/var/cache/bind/db.hogeserver.revz
nnn PTR dns.hogeserver.hogeddns.jp.
PTR smtp.hogeserver.hogeddns.jp.
PTR m.hogeserver.hogeddns.jp. 2012/06/23変更
nn2 PTR m.hogeserver.hogeddns.jp.
bind9を再開させる(nnnはサーバーのIPアドレスの末尾)。
$ sudo service bind9 start
これで、名前解決に関する部分の設定は終わり。
次はapache。
作成済みの自己証明書は hogeserver.hogeddns.jp のものなので、m.hogeserver.hogeddns.jp の証明書を作成する。
$ sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/ssl-cert-m.hogeserver.cert
作成中にホスト名を聞かれるので以下を入力。
m.hogeserver.hogeddns.jp
作成される証明書には秘密鍵も一緒に入っているのでココを参考に分けてしまう。
$ cd /etc/apache2/ssl $ sudo cp ssl-cert-m.hogeserver.cert ssl-cert-m.hogeserver.pem $ sudo cp ssl-cert-m.hogeserver.cert ssl-cert-m.hogeserver.key $ sudo chmod 644 ssl-cert-m.hogeserver.pem $ sudo chmod 600 ssl-cert-m.hogeserver.key
生成された元のファイルを削除して、秘密キーをしかるべき場所に移動。
$ sudo rm nnnnnnnn $ sudo rm ssl-cert-m.hogeserver.cert $ sudo mv ssl-cert-m.hogeserver.key /etc/ssl/private
次に、サイト情報を編集する。
/etc/apache2/sites-available/z-push
# # Z-push setting # Listen 10443 NameVirtualHost *:10443 2012/06/23変更 NameVirtualHost 172.16.nnn.nn2:10443 <IfModule mod_ssl.c> <VirtualHost *:10443> 2012/06/23変更 <VirtualHost 172.16.nnn.nn2:10443> ServerName m.hogeserver.hogeddns.jp Alias /Microsoft-Server-ActiveSync /usr/share/z-push/index.php <Directory /var/www/z-push/> DirectoryIndex index.php Options -Indexes +FollowSymLinks AllowOverride Options Order allow,deny Allow from all </Directory> SSLEngine on SSLCertificateFile /etc/apache2/ssl/ssl-cert-m.hogeserver.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-m.hogeserver.key </VirtualHost> </IfModule> # 拒否の仕方がよくわからず。hogeddnsにてばらまいているホスト名を拒否。 <VirtualHost *:10443> ServerName hogeserver.hogeddns.jp <Location /> Order deny,allow Deny from all </Location> </VirtualHost> <VirtualHost *:10443> ServerName smtp.hogeserver.hogeddns.jp <Location /> Order deny,allow Deny from all </Location> </VirtualHost> <VirtualHost *:10443> ServerName www.hogeserver.hogeddns.jp <Location /> Order deny,allow Deny from all </Location> </VirtualHost> 2012/06/23変更
apacheの設定を再読み込みさせる。
$ sudo service apache2 reload
これで、apacheの設定も終了。
ここまできたところで以下を実行。 2012/06/23変更
- iPhoneやiPadのWiFiを一度オフにして、オンにする。
これによって、DNSのキャッシュがクリアされる。 - 設定画面からメールアカウントを再設定して同期を始める。
その後でどこかのアカウントからメールを送ってZ-pushされるか確認する。
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他