読者です 読者をやめる 読者になる 読者になる

あれとアレは混ぜるな危険

日々精進をしているふり

独自ドメインを当てたWindows Azure WebSitesでSSLを使う

こんにちは、はるたまです。
東北楽天ゴールデンイーグルスが優勝に向けて独走していますが、よく訓練された楽天ファンは「こんな強いチームは楽天じゃない」と思っています。
ここはひとつ藤田(プロ)の守備を見て、心を落ち着けましょう。

流麗ジャンピングスロー、藤田の美しい守備にため息 2013.08.04 F-E ...

じゃあ、独自ドメインを当てた WebSites で SSL を使うための話でもしましょうか。

WebSites で SSL を利用する前に

独自ドメインは使わないで既定の *.azurewebsites.net で SSL を使いたい場合、何もしなくても使えるようになっています。
URL の頭を https:// と変更すると、ちゃんと鍵マークが出てきます。

実際に使っている証明書は azurewebsites.net に対するワイルドカード証明書になっています。

URL に特にこだわりがなければ SSL は標準でついてきます。Azure さんステキ!

ということで、これからの話は独自ドメインに対する SSL 証明書を使った https 通信を WebSites で利用する場合になりますが、このとき WebSites のモードを「標準」にしないと SSL を利用できません。

ここを事前に変えておきましょう。

SSL証明書の種類

WebSites で使える SSL 証明書としてはSNI SSL と IP SSL があります。これは何に対して証明を行うかが異なっていて、SNI SSL の場合はドメイン名に対して、IP SSL の場合はIPに対しての証明書となります。
Windows Azure の価格表を見るとIP SSL を利用した場合の値段が SNI SSL に比べて5倍くらい違っています。詳しい話はここらへんにありますが、IP SSL を利用する場合はクライアントからアクセスする際に見える IP を固定しなければいけないため、WebSites で動いているサービスに対して割り当てる固定 IP 代が上乗せされていると考えれば良いかと思います。
SNI SSL を利用すればいろいろ安く上がりますが、ガラケー対応や Windows XP 対応などの要件があれば、IP SSL を使わざるを得なくなる場合があります。

証明書を買ってくる

一口にSSL証明書といっても、実はいろんな種類があります。
SSL証明書自体の種類に関してはココらへんを参考にして頂ければと思います。

とりあえず今回は個人用で使えればそれでいいので GeoTrust の RapidSSL を調達してみました。1年間有効の証明書なら1000円ちょっとで買えちゃいます。企業在籍証明*1ナシで発行してくれるタイプのものなので、申し込んだらすぐに証明書を発行してもらえます。

RapidSSL の証明書を入手するときは直接 GeoTrust からではなく、代理店から入手することになります。代理店を探すときはグーグルさんに聞いてみれば答えてくれますので、なんだか良さげなところを見つけてください。日本だけでなく海外にも代理店はたくさんありますので、ひたすら安く買いたい場合は候補に入れてもいいかと思います。
ちなみに自分はここで買いました。

証明書の申請を行う際にCSRを生成する必要がありますが、WebSites で利用する SSL 証明書の場合、自分のローカルマシンにインストールされた IIS のマネージャーから CSR を作成すればよいです。IIS をインストールしたくなければ、Azure で仮想マシンを1時間くらい借りてIISマネージャーを使ってもいいかと思います。
CSR 自体の作成方法はここに書いてあります。

証明書のエクスポート

ちなみに Rapid SSL で証明書を買うと、メールの最後の方に

Your RapidSSL certificate:

-----BEGIN CERTIFICATE-----
謎のごちゃごちゃした文字列
-----END CERTIFICATE-----

こんなのがついてきます。これが SSL 証明書です。絶対になくしたり*2、他人に見せびらかしたりしないでください。
この形式では WebSites にアップロード出来ないため、一旦 IIS に取り込んで PFX 形式に変換してあげる必要があります。
こんな感じでIISに取り込んでこんな感じで PFX 形式でエクスポートします。

証明書のアップロード

ここまでできたら、あとは WebSites に PFX 形式になった証明書をアップロードします。
WebSites の「構成」のところに「証明書をアップロードします」というところがあるので、ぽちっと押します。

ここで PFX ファイルを指定して、パスワードに PFX を作成した時のパスワードを入れてあげるとアップロードが完了します。

ということで、独自ドメインを当てた WebSites を https で見てみると

こんな感じで

ちゃんと使えてますね。

*1:会社・組織が実在する証明を提出したり、証明書発行会社からホントに会社・組織が実在するか確認のための電話がかかってきたり。

*2:なくした場合に無料で再発行してくれるオプションがついていたりする場合もありますが。