Windows Azure PowerShell Cmdlets と証明書

http://wappowershell.codeplex.com/ Windows Azure PowerShell Cmdlets の使用例として分かりやすかったのは http://d.hatena.ne.jp/hogege/20100225/1267095103 この日記だった。特に「 Get-OperationStatus –WaitToComplete で実行完了を待つ」ところ。

ところで、世の中の開発者向けの解説やサンプルは、ほとんどが自己署名証明書を基本にしており、その影響がここにも表れている。この日記の人は悪くなく、おそらく最初に出てきたMSのドキュメントからそうなのであろう。

アップロードをする際に証明したいのは、「アップロードする権限があるか」であり、それを証明するための証明書は「個人」証明書として登録されているものである。一方サンプルでは Root 、ルート証明機関にある証明書を利用しようとしている。自己署名の場合は確かにそうなってしまうのだが、ルート証明機関は「ここを起点にしたあらゆる証明書を信頼する」というとても強い信頼を与えてしまうため、滅多なことでは追加してはいけない。

ルート証明機関として証明書を気軽に登録するような文書はなるべく減って欲しい。

具体的には以下の3つの作業を行う

  1. 個人証明書を発行する。自分専用の証明書であれば種類は問わない。
  2. 個人証明書を秘密鍵なしでエクスポートし、Azureの管理証明書として登録する。
  3. スクリプト内の証明書の取得は “My” を利用する。

Azureアップロード用証明書

スクリプトの証明書を取得している行は以下のようになる。

$cert = Get-Item cert:\CurrentUser\My577EFFB2203......

個人証明書については、ActiveDirectory 証明書サービスを用いて証明書は自動発行されるようにしておき、自動発行された証明書を Azure の管理証明書として登録するという開発インフラを整えるのが望ましい。なぜならその証明書が誰の証明書かがはっきりするから。(そうでなければ Visual Studio が作成する自己署名証明書を利用する。チュートリアルをやると大概出来上がっている)

一方で、現在Webを含めインターネット上のあらゆるデータ通信を SSL 化する方向に進んでいると感じており、X.509 証明書の扱いについては開発者であっても、ある程度慣れておくべきと思っている。

(4/12 追記)

https://kamiyn.wordpress.com/2008/03/23/任意のサブジェクトを持つクライアント証明書発/ 4年前からあんまり進歩してませんね…普及させるための方策をちゃんと作らないと!

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。