ESXiの証明書変更


vSphere ClientからESXiに接続した際に表示される「セキュリティ警告」画面。
今回はこの警告について記載。20141229_03

原因

ESXiへの接続情報(ホスト名 or IPアドレス)と、ESXiが使用しているSSL証明書のコモンネームが異なる場合など、証明書の検証が失敗した際に表示される。
20141229_04 20141229_05尚、ESXiのインストール処理では、「VMware Installer」による自己署名証明書が自動生成される。

解決策

VMware KBに従い、ESXiに正しい証明書を適用する。

やってみる

  1. CSR(証明書要求)、秘密鍵を作成する。
    OpenSSLがインストールされた環境であればWindowsでもLinuxでもOK。
    今回はLinux上で作業した。openssl.cfgは使用せず、手入力している。

    # openssl req -new -nodes -out rui.csr -keyout rui-orig.key
     Generating a 2048 bit RSA private key
     ....+++
     ...+++
     writing new private key to 'rui-orig.key'
     -----
     You are about to be asked to enter information that will be incorporated
     into your certificate request.
     What you are about to enter is what is called a Distinguished Name or a DN.
     There are quite a few fields but you can leave some blank
     For some fields there will be a default value,
     If you enter '.', the field will be left blank.
     -----
     Country Name (2 letter code) [XX]:JP  # 国名を2文字で指定
     State or Province Name (full name) []:Tokyo # 都道府県を指定
     Locality Name (eg, city) [Default City]:Sumida # 市区町村を指定
     Organization Name (eg, company) [Default Company Ltd]:dozono # 組織名を指定
     Organizational Unit Name (eg, section) []:dozono # 組織単位名を指定
     Common Name (eg, your name or your server's hostname) []:esx01.dozono.net # コモンネームを指定
     Email Address []: # 空Enter
     Please enter the following 'extra' attributes
     to be sent with your certificate request
     A challenge password []: # 空Enter
     An optional company name []: # 空Enter
     # openssl rsa -in rui-orig.key -out rui.key
    writing RSA key
     #
  2. CSRより証明書を発行する。
    (1) 商用CAを用いる場合
    作成したCSRを使用し、商用CAに証明書を申請する。【有料】
    第三者機関の証明が必要なため最もセキュリティは高く、OS標準のルート証明書によりほとんどの証明書が検証可能である。しかし、ESXiやvCenter ServerのManagement Networkは隔離することがVMwareの推奨となっていること、および一般公開する通信ではない事から、商用CAを用いるメリットは薄いと考えられる。

    (2)プライベートCAを用いる場合(自己署名証明書)
    既存システムで利用しているプライベートCAでCSRを署名する。【基本無料、CAの管理者が他社(チーム)の場合を除く】
    システムに依存するが、CSR作成に利用したOpneSSLか、Microsoft CAを利用する方法のどちらかだろう。
    今回はOpenSSLで作業する。
    尚、KBに記載されている[openssl req -x509 (後略)]コマンドは、手順1で作成したCSR、秘密鍵を使用せずに自己署名証明書を作成するコマンドであるため、今回は使用しない。

    # openssl ca -out rui.crt -in rui.csr
    Using configuration from /etc/pki/tls/openssl.cnf
    Enter pass phrase for /etc/pki/CA/private/cakey.pem: # CAのパスワードを入力
    Check that the request matches the signature
    Signature ok
    Certificate Details:
    Serial Number: 17020871593032576621 (0xec3648888e3e6e6d)
    Validity
    Not Before: Dec 30 20:29:18 2014 GMT
    Not After : Dec 30 20:29:18 2015 GMT
    Subject:
    countryName = JP
    stateOrProvinceName = Tokyo
    organizationName = dozono
    organizationalUnitName = dozono
    commonName = esx01.dozono.net
    X509v3 extensions:
    X509v3 Basic Constraints:
    CA:FALSE
    Netscape Comment:
    OpenSSL Generated Certificate
    X509v3 Subject Key Identifier:
    CE:97:63:B3:78:6E:D9:18:2D:A7:28:92:03:DD:10:BD:CD:3D:6E:53
    X509v3 Authority Key Identifier:
    keyid:DC:16:63:91:17:81:2E:B6:C1:4B:D7:80:1D:14:01:B0:E4:02:FA:29
    
    Certificate is to be certified until Dec 30 20:29:18 2015 GMT (365 days)
    Sign the certificate? [y/n]:y # yキーを入力
    1 out of 1 certificate requests certified, commit? [y/n]y # yキーを入力
    Write out database with 1 new entries
    Data Base Updated
    # ls
    rui-orig.key rui.crt rui.csr rui.key 
  3. 証明書をESXiに読み込ませる。
    KBの内容を要約すると、
    (1) ESXiをメンテナンスモードに変更する。
    (2)ESXiの[/etc/vmware/ssl]ディレクトリに証明書を配置する。(既存ファイルのバックアップも忘れずに)
    (3)デーモンを再起動する。
  4. 動作を確認する。
    vSphere Clientでは分かりづらいので、ブラウザでESXiに接続し証明書を確認する。20141229_06証明書が更新され、https通信の鍵マークが正常な状態であることが分かる。
    ※ プライベートCAを用いる場合は、接続元のOSにルート証明書をインポートしておく必要あり。

ESXiの証明書を更新するとvCenter Server とESXiの接続が切れるため、vSphere ClientからESXiを再接続すること。
Horizon Viewを使っている場合、再接続の手順が増えたりするので、証明書を更新する必要がある場合は初期構築時に!

XenDesktopやらHinemosやら、ESXiとhttps通信が必要な場合にもどうぞ。

Digiprove sealCopyright secured by Digiprove © 2015
ブックマーク へのパーマリンク.

One Response to ESXiの証明書変更

  1. ピンバック:vCenter Serverの証明書変更 | SD2

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください