しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Microsoft Azure Web サイトにワイルドカードドメインを追加したらサーバーエクスプローラーが腐る件について

先日開催された 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

f:id:shiba-yan:20140416212703p:plain

通常の timekeeper.jp という A レコードだけではなく、*.timekeeper.jp という A レコードも追加してあります。awverify.timekeeper.jp は CNAME で検証用のホスト名にしておくのはいつも通りですね。

それでは管理ポータルから *.timekeeper.jp というドメインを追加します。

f:id:shiba-yan:20140416171643p:plain

ちなみにネイキッドドメインも追加しておかないと、www なしでアクセスした時に 404 Site Not Found エラーという残念なことになるので注意しましょう。ドメインの登録が出来たら、適当なサブドメインを指定してアクセスしてみます。

f:id:shiba-yan:20140416213237p:plain

DNS や Web サイトに追加していない shiba-yan.timekeeper.jp というドメインでサイトを表示することが出来ましたね。あとは URL Rewrite で振り分けるもよし、プログラム側で弄るのもよしという感じです。

管理ポータルから正しく追加出来て、動作自体もちゃんと確認出来ましたが、Azure SDK 2.3 をインストール済みの Visual Studio のサーバーエクスプローラーで問題が発生する時があります。

f:id:shiba-yan:20140413231611p:plain

エラー内容から推測するに、どうやら *.timekeeper.jp という URL が不正だということみたいですが、正直そんなことを言われても困るわけです。

サーバーエクスプローラーでエラーになるということは、リモートデバッグやログストリーミングを Visual Studio から行えなくなるので非常に不便です。とりあえず回避するためには Web サイトの管理ポータルから最初にワイルドカードドメインを追加しておくのが効果ありそうでした。

とりあえず SDK チームにフィードバックしておこうかと思います。

*1:ウェブマトリクスマン

*2:ワイルドカード証明書は高いのでまた今度。