先日開催された Build 2014 のタイミングで、Microsoft Azure Web サイトにてワイルドカードドメインとワイルドカード証明書がサポートされたようです。関連するフィードバックが色々とクローズされています。
Better support for wildcard domain mappings – Customer Feedback for Microsoft Azure
そして内容に関してはいつも通り、赤シャツブログでも紹介されています。
Azure Web Sites now supports the ability to map wildcard DNS and SSL Certficates to web-sites. This enables a variety of scenarios – including the ability to map wildcard vanity domains (e.g. *.myapp.com – for example: scottgu.myapp.com) to a single backend web site. This can be particularly useful for SaaS based scenarios.
Azure Updates: Web Sites, VMs, Mobile Services, Notification Hubs, Storage, VNets, Scheduler, AutoScale and More - ScottGu's Blog
はてなブログなどの SaaS ではサブドメインがユーザー作成と同時に割り当てられたりしますが、機能としては今回の Web サイトのアップデートで実現可能となりました。
やはり検証はしておきたかったので、緑タイツマン*1にサービスを作れと言われて取得した timekeeper.jp というドメインに、ワイルドカードな A レコードを追加して試してみました。*2
通常の timekeeper.jp という A レコードだけではなく、*.timekeeper.jp という A レコードも追加してあります。awverify.timekeeper.jp は CNAME で検証用のホスト名にしておくのはいつも通りですね。
それでは管理ポータルから *.timekeeper.jp というドメインを追加します。
ちなみにネイキッドドメインも追加しておかないと、www なしでアクセスした時に 404 Site Not Found エラーという残念なことになるので注意しましょう。ドメインの登録が出来たら、適当なサブドメインを指定してアクセスしてみます。
DNS や Web サイトに追加していない shiba-yan.timekeeper.jp というドメインでサイトを表示することが出来ましたね。あとは URL Rewrite で振り分けるもよし、プログラム側で弄るのもよしという感じです。
管理ポータルから正しく追加出来て、動作自体もちゃんと確認出来ましたが、Azure SDK 2.3 をインストール済みの Visual Studio のサーバーエクスプローラーで問題が発生する時があります。
エラー内容から推測するに、どうやら *.timekeeper.jp という URL が不正だということみたいですが、正直そんなことを言われても困るわけです。
サーバーエクスプローラーでエラーになるということは、リモートデバッグやログストリーミングを Visual Studio から行えなくなるので非常に不便です。とりあえず回避するためには Web サイトの管理ポータルから最初にワイルドカードドメインを追加しておくのが効果ありそうでした。
とりあえず SDK チームにフィードバックしておこうかと思います。