🕌

ESXiへのHTTPS接続で「保護されていない通信」を解消する:証明書登録の落とし穴

に公開

ESXiへのHTTPS接続で「保護されていない通信」を解消する:証明書登録の落とし穴

社内のESXi環境へブラウザでアクセスする際、毎回表示される「保護されていない通信(この接続ではプライバシーが保護されません)」という警告。
「詳細設定」をクリックして「...にアクセスする(安全ではありません)」を押す手間をなくすため、自己署名証明書をPCにインポートして解決しようとしました。

しかし、単にブラウザから証明書を保存して登録するだけではうまくいかず、いくつかハマりポイントがありました。
今回は、「証明書を入れたはずなのに警告が消えない原因」 と、「SSH経由で正しいルート証明書を取得して解決する方法」 をまとめます。

環境

  • ESXiバージョン: 6.7.0 Update 3
  • クライアントOS: Windows 10/11
  • ブラウザ: Chrome / Edge
  • 対象ESXi IP: 192.168.1.100(例)

1. 現象とエラーの切り分け

ESXiの管理画面(https://192.168.1.100/)にアクセスすると、アドレスバーに「保護されていない通信」と表示され、警告画面になります。

まずは警告画面の「詳細設定」ボタンを押し、表示されるエラーコードを確認しました。

  • NET::ERR_CERT_COMMON_NAME_INVALID の場合
    • 証明書のホスト名(CN)やSAN(Subject Alternative Name)の設定不足です。ESXi側で証明書の再生成が必要になるケースが多いです。
  • NET::ERR_CERT_AUTHORITY_INVALID の場合
    • 証明書自体は読み込めているが、PCがその発行元を「信頼」していない状態です。
    • 今回はこちらのエラーでした。 つまり、PCの「信頼されたルート証明機関」に証明書を登録すれば解決するはずです。

2. ハマりポイント:登録する証明書の間違い

最初は、ブラウザのアドレスバーにある「注意」アイコンをクリックし、証明書ビューアから「ファイルにコピー」で証明書をエクスポートしました。
それをWindowsの「信頼されたルート証明機関」にインストールしたのですが、警告が消えません。

原因:入れていたのは「部下」の証明書だった

Windowsの証明書管理ツール(certmgr.msc)で確認したところ、以下のような状態になっていました。

  • 発行先: 192.168.1.100
  • 発行者: CA

「信頼されたルート証明機関」というストアは、その名の通り 「ルートCA(親玉)」 を登録する場所です。
しかし、私がブラウザから安易に保存したのは 「サーバー証明書(部下)」 でした。
PCからすると、「知らない親玉(CA)が発行した部下の証明書を、無理やり親玉の席に座らせられている」状態となり、信頼チェーンが繋がっていませんでした。

正解は、「発行先」と「発行者」が共に CA となっているルート証明書を登録することでした。

3. 解決策:SSHで「親玉(ルートCA)」を取り出す

ESXiのトップページに「Download trusted root CA certificates」というリンクがあればそこから落とせますが、環境によっては表示されないことがあります(私もありませんでした)。

そこで、SSH接続を利用してサーバー内部から直接ルート証明書を取得しました。

手順

  1. Tera Termなどのターミナルソフトで、ESXiにSSH接続します。
  2. 以下のコマンドを実行して、ルート証明書(castore.pem)の中身を表示させます。
cat /etc/vmware/ssl/castore.pem
  1. 画面に表示された文字列のうち、以下の範囲をコピーします。
    -----BEGIN CERTIFICATE-----
    (ランダムな文字列...)
    -----END CERTIFICATE-----

  2. メモ帳を開き、コピーした内容を貼り付けます。

  3. ファイル名をroot_ca.crtとして保存します(拡張子を.crtにするのがポイント)。
    :::message ※ -----BEGIN... のブロックが複数表示される場合は、すべてコピーして保存して問題ありません。 :::

4. 正しいインストール手順

取得した root_ca.crt を使い、再度インストールを行います。

  1. root_ca.crt をダブルクリックし、「証明書のインストール」をクリック。
  2. 保存場所は「現在のユーザー」。
  3. 証明書ストアの選択(最重要)
    • 「証明書をすべて次のストアに配置する」を選択。
    • 「参照」ボタンを押し、「信頼されたルート証明機関」 を指定する。
  4. インストールを完了させる。

5. 結果

ブラウザ(Chrome/Edge)を完全に再起動(アドレスバーに chrome://restart と入力)してから、再度ESXiへアクセスしました。

無事、アドレスバーに「鍵マーク」が表示され、HTTPS接続の警告が解消されました!

まとめ

  • エラーコードを確認する: AUTHORITY_INVALID ならPC側の登録で直る可能性大。
  • 入れる証明書に注意: ブラウザから手軽に保存できるのは「サーバー証明書」のことが多い。「信頼されたルート証明機関」に入れるべきは「ルート証明書(CA)」。
  • 困ったらSSH: /etc/vmware/ssl/castore.pem が親玉の証明書。

社内環境で「毎回警告をクリックするのが面倒」という方は、ぜひ試してみてください。

Discussion