SCVMM の証明書が有効期限切れとなったときの対処方法について [2018/12/25、2019/2/6 一部追記、修正]
日本マイクロソフト System Center Support Team の宮崎です。今回は、System Center 2012 Virtual Machine Manager 、System Center 2012 R2 Virtual Machine Manager SP1 、System Center 2012 R2 Virtual Machine Manager (以下、まとめて SCVMM) の使用する証明書が期限切れとなった場合や、何らかの理由で削除されてしまった場合の対処方法をご案内します。
<2018/12/25 追記>
※ 証明書の有効期限が切れる前においても本手順にて証明書の更新、再発行が可能です。
※ 各証明書の更新対象のサーバーにて証明書を削除し、SCVMMサーバー上にてコマンドを実行して証明書の更新を行います。
※ 証明書の再作成手順を実行してもフェイルオーバークラスター、Hyper-V、仮想マシンの動作に影響はありません。
※ SCVMM サーバー、Hyper-V サーバーいずれの証明書においても以下手順は共通して利用可能です。またその場合、作業順序は特にありません。
<2019/2/6 追記>
証明書が失効時した場合に、ジョブエラーにて表示されるエラーコードとして、以下があげられます。
2912 / 0x80072F05
特に 0x80072F05 は ERROR_INTERNET_SEC_CERT_DATE_INVALID / he date in the certificate is invalid or has expired を意味しており、証明書の失効を表します。
0x80072F05 がジョブエラーとして SCVMM 上に表示された場合は以下手順にて証明書が失効していないかご確認下さい。
SCVMM では、SCVMM サーバーと管理対象 Hyper-V サーバーの間の通信の安全性を確保するため、インストール時に自己署名証明書を作成します。以下のような証明書です。
フレンドリ名が "SCVMM_CERTIFICATE_KEY_CONTAINER***" (*** の部分は SCVMM サーバーもしくは Hyper-V サーバーの完全修飾ドメイン名) となっている点が特徴です。また発行者はそのホスト自身になっています。
この証明書鵜の期限は SCVMM をインストールした年もしくは Hyper-V サーバーを SCVMM の管理対象に設定した年の 1/1 から 5 年間に設定されます。例えば 2015/10/26 に Hyper-V ホストを SCVMM の管理対象に設定した場合、設定される証明書の有効期限は 2020/1/1 になります。これは 2015 年中であればいつやっても同様の結果となります。
さて、上記の通りこの証明書の期限は 5 年間となっています。このため、5 年間が経過するとこの証明書は無効になります。また何かのトラブルシュートの際などに誤ってこの証明書を削除してしまったりすることも考えられます。その場合、SCVMM サーバーと Hyper-V サーバーの間の通信に問題が発生し、Hyper-V サーバーの管理作業などが正しく動作しなくなります。
このような場合、SCVMM サーバーもしくは Hyper-V サーバーにインストールされている SCVMM エージェントを再インストールすることで対処することもできますが、証明書を再発行することでも対処することができます。この際の手順は以下の通りです。
1. SCVMM サーバー上もしくは Hyper-V サーバー上で、Windows + R を入力して、[ファイル名を指定して実行] を起動します。
2. mmc と入力して [OK] をクリックします。
3. 表示されたウインドウで、メニュー バーから [ファイル] - [スナップインの追加と削除] を選択します。
4. "利用できるスナップイン" から "証明書" を選択し、[追加] をクリックします。
5. [証明書スナップイン] ウインドウが表示されたら、"コンピューター アカウント" をチェックし、[次へ] をクリックします。
6. [コンピューターの選択] ウインドウでは、既定値のまま [完了] をクリックします。
7. [OK] をクリックして、[スナップインの追加と削除] ウインドウを閉じます。
8. 左側のツリーから、[証明書 (ローカル コンピューター)] - [個人] - [証明書] を開きます。
9. 中央ペインに表示されている証明書のうち、"フレンドリ名" 列に "SCVMM_CERTIFICATE_KEY_CONTAINER***" (*** の部分は SCVMM サーバーもしくは Hyper-V サーバーの完全修飾ドメイン名) と表示されてる証明書を選択して削除します。そのような証明書が既に存在しない場合にはそのまま手順 10. に進みます。
10. コンソール ウインドウを終了します。
11. SCVMM サーバー上で、"Virtual Machine Manager Command Shell" を起動します。
12. 以下のコマンドを実行します。
$credential = get-credential
13. 表示されたウインドウに、SCVMM サーバーのローカル管理者権限のあるユーザーのユーザー名とパスワードを入力して [OK] をクリックします。
14. 続いて、以下のコマンドを実行します。(*** の部分は SCVMM サーバーもしくは Hyper-V サーバーの完全修飾ドメイン名)
Get-VMMManagedComputer -ComputerName "***" | Register-SCVMMManagedComputer -Credential $credential
15. コマンドが無事に終了したことを確認します。
手順は以上です。こちらの対処を実施することで、その日を含む年の 1/1 から 5 年間の有効期間を持つ自己署名証明書が作成されます。
なお、この 5 年間という期限は製品として固定的に設定されたものであり、変更することはできません。
- 参考情報
"I accidentally deleted the VMM self-signed certificate from the VMM server. Now what do I do?" (英語)
- 追記
SCVMM のライブラリ サーバーに設定したサーバーにも自己署名証明書が設定されます。この証明書についても、上記と同様の手順で更新することができます。