【Azure for ITPRO】自己署名証明書を作成する

ITPRO にとっての Windows Azure Platform は、ハードウェアなどの日常メンテ業務から解放されることが着目されがちですが、実を言えばすこし面倒(?)な事態も発生します。それは、これまで敬遠しがちだったテクノロジーに正面(とはいわず斜め前くらい)から向き合わなければならない...という点です。その1つが、「証明書」です。

過去の Azure for ITPRO シリーズも参考にしてください。

先の投稿でも触れている通り、Windows Azure 上のサービスに展開したアプリケーションを SSL 対応にするには、「サービス証明書(.pfx) 」と呼ばれる証明書ファイルを準備しておく必要があります。

ただ、ちょっとテストがしたい...など正式な証明書の発行を待てない場合には、とりいそぎ自己署名証明書を使用したいはずです。

自己署名証明書を作成する代表的な方法は2つあります。

  1. IIS 管理コンソールを使用する
  2. makecert コマンドおよび pvk2pf コマンドを使用する

IIS 管理コンソールを使用した場合、作成できる自己署名証明書の主体(発行先)は自分自身です。

selfcert1

Windows Azure 上にアプリケーションを展開した場合、その URL は xxxxxxx.cloudapp.net もしくは CNAME ですので、IIS 管理コンソールでは対応できません(ローカルに xxxxxxxx.cloudapp.net を展開する...という手もなくはありませんが...)。

主体名(発行先)を自由に指定するには、Windows SDK で提供されている makecert コマンドおよび pvk2pfx コマンドを使用することができます。

コマンドを使用する前に、以下をインストールしておいてください。

もしコマンドは既に手元にある...という場合には、以下だけダウンロードしてインストールすれば使用することができます。

サービス証明書を作成する流れを以下に示します。

selfcert2

上の図に示したとおり、まずは makecert コマンドを使用して .cer ファイルと .pvk ファイルを作成します。次に、pvk2pfx コマンドを使用して .pfx ファイルを作成し、これを サービス証明書として Windows Azure に展開したサービスに登録します。

さっそくやってみましょう。

まずは以下のように makecert コマンドを入力します。「test.cloudapp.net」は今回展開したサービスの FQDN です。もし CNAME でアクセスさせたい場合には、その FQDN を指定してください。

c:\> makecert -r -pe -n "CN=test.cloudapp.net" -sky exchange “test.cloudapp.net.cer" -sv “test.cloudapp.net.pvk"

途中、証明書にセットするパスワードを2回聞かれますので、間違えずに入力してください。

imageimage

このコマンドの結果、以下の 2つのファイルが作成されます。

  • test.cloudapp.net.cer
  • test.cloudapp.net.pvk

今度は、この2つのファイルを入力パラメタとして使用し、pfx ファイルを作成します。<パスワード>部分には、makecert コマンドで指定したパスワードを入力してください。

c:\> pvk2pfx -pvk “test.cloudapp.net.pvk“ -spc “test.cloudapp.net.cer“ -pfx “test.cloudapp.net.pfx“ -pi <パスワード>

この結果、以下のファイルが作成されます。

  • test.cloudapp.net.pfx

あとは、以下の記事で手順を解説しているとおり、Windows Azure のポータル画面から「サービス証明書」として登録します。

【Azure for ITPRO】証明書の管理について - フィールドSEあがりの安納です - Site Home - TechNet Blogs