【vSphere7】vSphere Clientからファイルをアップロード・ダウンロードできない件について

どうも、Tです。

仮想マシンのインストールなどでvSphere Clientを使ってISOファイルとデータストアへアップロードしたりダウンロードしたりすることがありますが、vSphere6.5あたりから仕様が変わっていたようですね・・・・。

今回、使う場面があって検証したので備忘録です。

ここでの結論

  • vSphere Clientを利用してファイルをアップロードするときは、VMCAのルート証明書を操作しているマシンの信頼されたルート証明書機関にインポートする必要がある。
  • vSphere Clientを利用してファイルをダウンロードするときは、ブラウザでポップアップとリダイレクトの許可をする。
  • 一時的な利用ならHost Clientを利用する。
  • ライセンスがあるならコンテンツライブラリを使う・・・かも?

やりたいこと

vSphere Clientを使ってISOファイルをアップロード・ダウンロードしたい。

環境

バージョン

  • vCenterServer:7.0.2 17958471
  • vSphere ESXi: 7.0.2 17867351

証明書

vSphereの証明書構成として、ハイブリッドモード(マシンSSL証明書の入れ替え)で確認しています。

【vSphere7.0u2】vcsa(VMCA)の証明書構成をハイブリッドモードにしてみる(マシンSSL証明書を置き換え)
どうも、Tです。 VMwareさんの推奨するvSphereの証明書管理アプローチのハイブリッドモードを試してみます。 ここで...

この構成自体は、今回の事象と関係ありません。画面ショットがVMCA証明書のデフォルト状態と少々異なるので一応記載しておきます。

事象

アップロードの失敗

vSphere Clientでファイルをアップロードしようとすると「操作が失敗しました」でエラーになりアップロードできません。

ダウンロードの失敗

vSphere Clientでファイルをダウンロードしようとすると「ダウンロード処理がブロックされています」が表示されダウンロードできません。ポップアップを許可のバーもブラウザに表示されません。

この事象はChromeで確認しました。

Micorosft Edgeでは、Chromeと同様の事象でした。

Firefoxでは、少々怪しい挙動ではありましたが、ファイルをダウンロードすることができました。

原因

アップロード失敗の原因

アップロードができない原因は、vCenterのデフォルトでデプロイされているルート証明書が操作しているブラウザ(PC側)に存在しないためです。

エラーの詳細をクリックすると下記のような画面が表示されます。解決するためのKB2147256もリンクが表示されます。証明書を受け例(インポート)するようアナウンスがあります。初見で不思議に思うのはvcsaのホスト名ではなくESXiホスト名が表示されているところです。

ESXiホストの証明書を見ると発行者がCA(vCenterのデフォルトCA)であることがわります。

おそらくvSphere Client経由でファイルをダウンロードしようとするときに、PC(ブラウザ)からESXiホストへのリダイレクトみたいな通信があり拒否されているのではないかと思われます。

ESXi証明書については下記記事をご確認ください。

【vSphere7.0u2】ESXiホストの証明書はどうなったのか
どうも、Tです。 vcsaを中心に証明書の確認をしましたが、ESXiホスト証明書について確認します。 検証目的 E...

ダウンロード失敗の原因

ダウンロードができない原因は、単にポップアップが許可されていないだけでした。ポップアップ許可のメッセージバーが表示されないのではChromeのバージョンかブラウザの相性によるものだと思われます。

アップロード解決方法

証明書のインポート

ESXiホスト証明書は、画像のピンクにあるvCenterをデプロイしたときのルート証明書を使って発行されています。このルート証明書をPCにインポートすれば解決できます。

KB2147256に沿って対応していきます。

http://kb.vmware.com/kb/2147256

ログイン画面の接続し、右下の「信頼されたルートCA証明書をダウンロード」を右クリックし「名前を付けてリンク先を保存」をクリックします。

「download.zip」を展開します。

「download\certs\win」を開きます。ファイル名に「0.crt」となっているものがルート証明書になります。

検証環境ではハイブリッド構成にしているため外部から取り込んだルート証明書もあるため「0.crt」ファイルが2つあります。

ダブルクリックして確認するとvCenterのデプロイ時に発行されたルート証明書であることがわかります。

証明書ファイルを右クリックし、「証明書のインストール」をクリックします。

「開く」をクリックします。

「ローカルコンピューター」を選択し「次へ」をクリックします。

「証明書をすべて次のストアに配置する」を選択し「参照」をクリックします。

「信頼されたルート証明機関」を選択し「OK」をクリックします。

「信頼されたルート証明機関」になっていることを確認し「次へ」をクリックします。

「完了」をクリックします。

「OK」をクリックして閉じます。

以上でvCenterのデフォルトのルート証明書をPCへインポートできました。

証明書の確認

MMCから証明書を確認するとCAが追加されていることがわかります。

データストアへのファイルアップロードの確認

ファイルをアップロードするとエラーが発生せず進捗します。

ファイルのアップロードが完了します。

そんなの面倒だよね・・・・

証明書のインポート面倒だなぁと思います。一時的な利用であれば、HostClientへアクセスしてアップロードすると証明書の設定など不要でアップロードすることができます。

ダウンロードの解決方法

ダウンロードだけしたい場合は、本手順だけで大丈夫です。アップロードの証明書のインポートは必要ありません。

手動でポップアップを許可していきます。

Chromeの3点リーダーから「設定」をクリックします。

「プライバシーとセキュリティ」を開き「サイトの設定」をクリックします。

「ポップアップとリダイレクト」をクリックします。

「ポップアップの送信やリダイレクトの使用を許可するサイト」の「追加」をクリックします。

「https://<vCenterのFQDN>」を入力して「追加」をクリックします。

追加されたことを確認します。

以上でポップアップの許可が終わりです。

データストアからのファイルダウンロードの確認

vSphere Clientからダウンロードをクリックするとファイルのダウンロードが行えます。

そんなの面倒だよね・・・・

こちらも面倒な場合は、Host Clientからダウンロードするとポップアップの許可なくダウンロードが行えます。

参考

https://kb.vmware.com/s/article/2147256
vSphere6.5環境で、データストアにファイルアップロードができない場合は?
CJです。 vSphere環境上、ISOファイルなどで仮想マシンを作成する場合、まずは ISOファイルをデータ…

まとめ

なんだろ・・・すごくめんどくさい!ちなみに、コンテンツライブラリを使っているとこんなことはありませんでした。

が、まぁあれもがっつり運用載せると面倒そうだなぁとか思ったり(´・ω・`)