OS X Lion ServerのiCal Serverをプッシュ配信設定してみた

この記事は2022年10月以前に公開し、一度消失してしまったものですが、Wayback Machineのキャッシュデータから復元しました。当時の備忘録として再掲載します。

先日OS X Lion ServerことLion ServerにiCal Serverの設定をしてスケジュールをMacやiPhone、iPadで共有できるようにしました。

OS X Lion ServerのiCal Serverを構築してみた

ただしスケジュールの同期はフェッチ形式で各デバイスが決められた時間毎にサーバーに接続してスケジュールを同期するというものでした。
実はLion Serverにはスケジュールやメール・アドレス帳などを更新したらサーバーから各デバイスにプッシュ配信する機能があるようなので設定をしてみたいと思います。

Appleプッシュ通知という機能をOnにするだけなのですが、Serverの管理画面にある[ハードウェア]-[コンピュータ名(この例ではmacmini)]を選択します。
[Appleプッシュ通知を入にする]のチェックを付けます。
※画像復元できませんでした

Appleプッシュ通知サービス証明書を作成するのにAppleIDを入力します。
AppleIDをお持ちでない方は[今すぐ作成]からAppleIDを作成する事ができると思いますが、yasuはAppleIDをすでに持っているので持っているAppleIDを入力して[証明書を取得]ボタンをクリックします。
※画像復元できませんでした

Appleプッシュ通知サービス証明書ができたら[OK]ボタンをクリックします。
※画像復元できませんでした

iCalの環境設定から「カレンダーを更新」の選択一覧を確認してみましたが「プッシュ配信」は一覧にありません。
※画像復元できませんでした

なんで?
どうして!?

Snow Leopard ServerのiCal Serverでプッシュ配信の設定をされている方がいらっしゃいました。
※当時のリンク先なくなってしまいました

2009-11-21 19:49:31+0900 [-] [notifications] 2009-11-21 19:49:31+0900 [-] [twistedcaldav.notify.XMPPNotificationFactory#debug] SEND:
2009-11-21 19:49:31+0900 [-] [notifications] 2009-11-21 19:49:31+0900 [XmlStream,client] [twistedcaldav.notify.XMPPNotificationFactory#debug] RECV:

iCalサービスを運用しているサーバのFQDNはsnserver.msyk.netで、他のコンピュータにDNSがあります。しかし上記のメッセージを見る限りは、iCal Serverはスケジュールの発生による通知を行うために「pubsub.snserver.msyk.net」に接続しようとしているように読めます。はたして…、DNSに「pubsub.snserver.msyk.net」の正引きをできるように設定しました。ホスト名がドメインになっておりちょっと面倒ですが、「pubsub.snserver.msyk.net」も、本来のFQDNの「snserver.msyk.net」も、同一のIPアドレスが得られるようにDNSを設定しました。すると、すんなりプッシュされました。Wikiのスケジュールでメッセージを追加すると、すぐにiCalクライアントにも出てきました。

なにやらログをみてpubsub.xxxx.xx.xxって箇所に接続しにいくからそれを名前解決できるようにすればプッシュ配信ができたとか何とかって読み取れました。

はて?
我が家のLion Serverちゃんはなにかログを掃いてるのかな?

あー、家のもpubsub.macminiって名前でアクセスしている形跡がありました。

う〜ん、困ったな。
我が家にはMac miniとは別のマシンにDNSサーバーがあり、そこで自宅マシンの名前解決を行っています。
しかしドメイン名がsa-sa-ki.jpなので、pubsub.macmini.sa-sa-ki.jpって名前だったら名前解決できるようにできるのですがsa-sa-ki.jpがないとDNSサーバーで名前解決できません。
ダメ元でMac miniのhostsファイルにpubsub.macminiを名前解決できるように記載してみます。

一度アップルプッシュ通知サービスを再起動(Appleプッシュ通知を入にするのチェックを外してまた付ける)してiCalを確認してみましたが、まだプッシュ配信させてもらえません。
う〜ん、hostsファイルではごまかせないって事なんですね。
とりあえずhostsファイルに追記した行は削除します。

あとはDNSサーバで名前が解決できるように設定してみます。
DNSサーバ側の設定はここでは割愛します。

Serverの管理画面にある[ハードウェア]-[macmini]を選択し[ネットワーク]タグを選択します。
今はコンピュータ名もホスト名もmacminiという名前になっていますが、ホスト名をDNSサーバーで名前解決可能なmacmini.sa-sa-ki.jpに変更してみます。
ホスト名の右側にある[編集]ボタンをクリックします。
※画像復元できませんでした

[続ける]ボタンをクリックします。
※画像復元できませんでした

プライベートネットワーク用のホスト名を選択して[続ける]ボタンをクリックします。
※画像復元できませんでした

ホスト名をmacminiからmacmini.sa-sa-ki.jpに変更して[続ける]ボタンをクリックします。
※画像復元できませんでした

ホスト名がmacmini.sa-sa-ki.jpに変更されました。
※画像復元できませんでした

ホスト名を変更したのでSSL証明書を作成し直します。
Serverの管理画面にある[ハードウェア]-[macmini]を選択し[設定]タグを選択します。
SSL証明書の右側の[編集]ボタンをクリックします。
※画像復元できませんでした

左下向きボタンを選択後、[証明書を管理]を選択します。
※画像復元できませんでした

[+]ボタンをクリックして[証明書識別情報を作成]をクリックします。
※画像復元できませんでした

証明書情報を入力して[作成]ボタンをクリックします。
名前:macmini.sa-sa-ki.jp ←ホスト名と統一
固有名のタイプ:自己署名ルート
証明書のタイプ:SSLサーバ
※画像復元できませんでした

[続ける]ボタンをクリックします。
※画像復元できませんでした

完了画面が表示されたあとすぐに「Serverはキーチェーンのキー”macmini.sa-sa-ki.jp”を書き出そうとしています。」ダイアログが表示されると思うので[常に許可]ボタンをクリックします。
※画像復元できませんでした

新しいホスト名で作成したSSL証明書ができたら[OK]ボタンをクリックします。
※画像復元できませんでした

SSL証明書の右側の[編集]ボタンをクリックします。
証明書を全てmacminiからmacmini.sa-sa-ki.jpに変更して[OK]ボタンをクリックします。
※画像復元できませんでした

※不要かもしれませんがiCal Serverのサービスの再起動を行いました。

SSL証明書を変更したので各デバイスのカレンダーのアカウント設定を削除してもう一度前回と同じように登録します。
アカウントの作成はOS X Lion ServerのiCal Serverを構築してみたの[OS X Lion]iCal Client設定、[iPhone]CalDAVアカウント設定、[iPad]CalDAVアカウント設定をやり直します。

これでプッシュ配信できるようになりました。

プッシュ配信はiCalアカウント設定直後の管理画面を一度終了しないと選択できないので慌てずに。
※画像復元できませんでした

コメントする