朝から昼寝

整理しておきたいIT関連の小ネタ

vCenterでファイルアップロード失敗「不明な理由で操作が失敗しました」

概要

vSphere Client(vCenterのWeb画面)にてデータストアにISOファイル等をファイルアップロードしようとすると、「不明な理由で操作が失敗しました」というエラーが発生することがあります。
本記事は、このエラーの対処方法についてまとめたものです。

本記事の目的

  • 「不明な理由で操作が失敗しました」のエラーに対処する。


目次

基本

現象

vSphere Client(vCenterのWeb画面)にてデータストアにISOファイル等をファイルアップロードしようとすると、以下のエラーが発生します。

不明な理由で操作が失敗しました。通常この問題は、ブラウザが証明書を信頼できない場合に発生します。自己署名証明書またはカスタム証明書を使用している場合は、下記の URL を新しいブラウザ タブで開いて証明書を受け入れてから、操作を再試行してください。

https://(ESXiサーバ)

問題が解決しない場合は、次のナレッジベースの記事で別の解決策を参照してください: http://kb.vmware.com/kb/2147256

対処

エラーメッセージにある通り、KB2147256に従い、接続元ブラウザにてルートCA証明書を信頼する設定を行うとエラーを回避できます。
その他の原因については後述します。

  1. vCenterのベースURLにアクセスします。
    例えば、https://vcenter.yourdomain.com/です。
    (https://vcenter.yourdomain.com/ui/のように、"…com/"の後に"ui/"のような文字がある場合、それを削除したURL)

  2. "信頼されたルートCA証明書をダウンロード"を選択します。

    vCenterのベースURL
    vCenterのベースURL

  3. ダウンロードしたzipファイルを解凍し、ルートCA証明書ファイルを確認します。
    "win"フォルダ配下の"xxxxxxxx.crt"というファイルがルートCA証明書です。
    ※ちなみに"lin"、"mac"、"win"という3つのフォルダがありますが、配下のファイルは拡張子が異なるだけで、中身は同一です。

  4. vSphere Clientを使用するブラウザにて、上記のルートCA証明書を信頼するよう設定します。
    Chromeの場合、設定画面(chrome://settings/security)のプライバシーとセキュリティセキュリティ証明書の管理から証明書の設定画面を開くことができます。
    ChromeやEdgeならOSの証明書ストア、FirefoxならFirefox専用の証明書ストアです。

  5. "証明書"画面にて、インポートを選択し、"証明書のインポートウィザード"を実行します。
    先ほど解凍した"xxxxxxxx.crt"ファイルを選択し、"信頼されたルート証明機関"にインポートします。
    "証明書ストアの選択"画面では、証明書の種類に基づいて、自動的に証明書ストアを選択するのままでも問題ないはずです。 確実に操作するなら、証明書をすべて次のストアに配置するから"信頼されたルート証明機関"を選択するのが良いです。

  6. "証明書"の"信頼されたルート証明機関"に、インポートしたルートCA証明書が表示されることを確認します。
    vCenterデフォルトのルートCA証明書は、発行者名称が"CA"となっており若干適当のようです。

    信頼されたルート証明機関に追加
    信頼されたルート証明機関に追加

  7. ブラウザのウィンドウを終了後、起動し直してから、vSphere Client(vCenterのWeb画面)にてデータストアにISOファイル等をファイルアップロードすると、エラー発生せず成功するはずです。

なお上記対処後は、ブラウザのURL欄の南京錠マークからvCenter画面の証明書を表示すると、証明書の警告が解消されていることが分かります。

ブラウザにてvCenter画面の証明書を確認
ブラウザにてvCenter画面の証明書を確認

証明書の検証にて問題なし
証明書の検証にて問題なし

詳細

原因の補足

エラーメッセージにある"https://(ESXiサーバ)"のURLから分かるように、ファイルのアップロード操作はvSphere ClientのURLへのアクセス(vCenterサーバとの通信)ではなく、アップロードしようとしているデータストアにアクセス可能なESXiサーバのうちいずれかのURLへのアクセスです。
vCenterは直接データストアにデータを書き込むことはできないため、このような実装になっているようです。

vSphere ClientにてvCenterにアクセスする際は、ルートCA証明書を信頼する設定をしていなくても証明書の警告を無視すればWeb画面を表示することができますが、このファイルのアップロード操作の際には、この証明書の警告を無視する操作ができないため、今回のエラーが発生していると思われます。

なお、vCenter環境では、vCenterサーバがルートCAとなり、vCenterおよび各ESXiサーバのHTTPSサービス用の証明書として、一律このルートCAから発行されたものが使用されるようです。

ルートCA証明書の登録で解決しない場合

なお、ルートCA証明書を正しく登録しても、このエラーを回避できない場合があります。
例えば、ブラウザを起動する端末にて、エラーメッセージにある"https://(ESXiサーバ)"の、"(ESXiサーバ)"部分の名前解決ができない場合です。この場合、"(ESXiサーバ)"のDNS登録状況、あるいは端末側のDNS設定やhosts設定の見直しが必要です。