Windows Azure でSSL証明書を複数ホストで別々に設定する方法

Windows AzureでSSL接続を行うためには - しがないプログラマ の日記 の続きです。

1つのWebRoleに対して、Azure上に複数環境用意することは良くあると思います。例えば、Production環境とDevelopment環境等。
この場合「サービス構成」を変更することで、それぞれの環境毎にデプロイできるようにするのが一般的だと思います。少なくとも、自分はそういうやり方をしていました。その際に、それぞれの環境向けにSSL証明書を取得した後、どう設定するのかが分かりづらかったので、追加メモです。

準備

Production環境とDevelopment環境の2つ環境があり、それぞれに対してドメイン名をCNAMEで prod.example.com, dev.example.com と設定したことにします。さらに、それぞれのドメイン向けにワイルドカード証明書ではなく、通常の証明書を発行した場合を想定しています*1

設定方法

WebRoleのプロパティを開き、証明書の追加を行います。この時、名称はどちらのドメインでも使用するので分かりづらくならないように気をつけます。証明書は一旦 LocalMachine/My に入っている prod.example.com の証明書を選択します。次に、エンドポイントを追加を行います。これは前回と同じで、Input/https/443 として 先ほど追加した証明書を選択します。
これで、prod.example.comHTTPSで接続できるようになりますが、dev.example.comには接続できません。ここで、証明書の設定タブに戻り、上部にある「サービス構成」をdev向けにします。すると、ほとんどの設定項目がグレイアウトしますが、サムプリントだけは変更可能なのです。後はサムプリントで dev.example.com向けの証明書を選択すれば完了です。
これで、それぞれの環境毎に証明書が設定できました。ポイントは、1つのエンドポイントに対して1つの証明書しか設定できませんが、証明書の中身は環境毎に選択できるので、問題ないってことですね。

*1:ワイルドカード証明書の場合には、どちらの環境でもそれを使用するように設定すればOKです