Windows Azure Backup に管理証明書をアップロードできない!
昨年から “Windows Azure Online Backup” としてプレビュー中だったこのクラウドバックアップ機能ですが、先日 Azure 管理ポータルに取り込まれました。また、以前と違い “Windows Azure Active Directory” への依存性もなくなりましたので、より簡単にご利用いただけます。ぜひお試しください。
というわけで私も試してみたのですが、いきなり躓いてしまったので犠牲者を減らすべく情報共有します。
コンテナーと管理証明書
Windows Azure Backup を使うには、まず「バックアップ資格情報コンテナー (Backup Vault)」という入れ物を作ります。
その後、このコンテナに「管理証明書」をアップロードする必要があります。これは、Windows Azure Backup のエージェントが動作するコンピューターが Windows Azure に対して管理 API を呼び出す際の認証に使用される公開鍵証明書です。(当然、関連する秘密鍵が当該コンピューターの証明書ストアに必要です)
で、いつも検証環境で使っているオレオレ証明書 (.cer) をアップロードしてみたんですが、これが失敗するんです。こんな風に。
この証明書は HPC Pack をインストールした際に自動的にストアに導入されるやつで、今までさんざん Windows Azure の管理証明書として使ってきたものなので、なぜダメなのかわからず困ってしまいました。エラーメッセージもあまりにあっさりしていますね…
有効期限の問題でした
アップロードできる証明書にはいくつか要件があって、
- 鍵長が 2048 bit 以上であること。
- LocalMacine/My ストアに秘密鍵付きで格納されていること。 (もちろんアップロードするのは公開鍵だけの .cer 形式)
- 「拡張キー使用法 (EKU)」で「クライアント認証」が指定されていること。(サーバー証明書はダメ)
等とあるのですが、さらに、
- 有効期間が 3 年以内であること。
というのもあります。私のオレオレ証明書は 2039/12/31 まで有効というイイカゲンなものであったため、弾かれてしまったのでした。
必要な証明書を簡単に作成する方法
Windows Azure Backup Agent をインストールしたいコンピューターで、次のコマンドを実行してください。「証明書の名前」は適宜置き換えてください、また、この例では有効期限が 2016/1/1 の証明書ができあがります。
makecert.exe -r -pe -n CN=証明書の名前 -ss my -sr localmachine -eku 1.3.6.1.5.5.7.3.2 -len 2048 -e 01/01/2016 証明書の名前.cer
上記コマンドを実行すると、アップロードするための .cer ファイルがカレントディレクトリに出力され、同時に関連する秘密鍵が LocalMachine/My ストアに格納されます。あとは Windows Azure ポータルにこのファイルをアップロードするだけです。
え、 makecert.exe が無い?!その場合は、 Windows SDK に入ってますのでお手数ですがインストールをお願いします。
Microsoft Windows SDK for Windows 7 and .NET Framework 4
関連情報
Install Windows Azure Backup Agent and upload the certificate
Upload certificates to the vault
__END__