概要
Windows Server 2019 には TestRoot 証明がインストールされている。これを利用してサーバー証明書を作成し,ワークグループ環境でも Hyper-vレプリケーションを行えるようにする。makecert.exe は不要!。Power Shell と 証明書管理ツールだけでOK。
makecert は使わす,Power Shell だけで証明書の作成ができるようになったのはとっても便利
手順
はじめに。説明環境について
サーバーは2台です。
1台目:Windows Server 2019 名前は testv1.fj.local
2台目:Windows Server 2019 名前は testv2.fj.local
両方ともワークグループであり Active Directory には参加していません。そして Hyper-vのインストールは終えています。
testv1 に作成した仮想サーバーを testv2 にレプリケーション できるようにするまでの道のりです。
補足
○サーバー名をドメイン付きにしています。必須ではないのかもしれませんが,ドメイン名がないとどうもうまくいかなかったので。
○サーバー名で証明書を発行しますので,サーバー名を後で変更する場合は,証明書やり直しとなります。本番の名前で作業しておきましょう。
事前,確認事項
○ 両者のサーバーは 互いにフルコンピューター名で通信できていること。PING試験などで確認する。ファイアウォールの影響を受けていないか
証明書の作成
さて,いよいよここからが重要なところです。自己証明書(オレオレ証明書)を作成します。発行作業は片方のサーバーのみでOKです。ここでは testv1.fj.local を使用することにします。
まず,Power Shell 管理者 にて 以下の コマンドを 実行します。
New-SelfSignedCertificate -DnsName "testv1.fj.local" -CertStoreLocation "cert:\LocalMachine\My" -TestRoot -NotAfter (Get-Date).AddYears(30)
赤字の部分は まずは自分のコンピューター名です。30は証明書有効期限を30年間という意味です。(後で有効かどうかのチェックを無効にするので意味がないのかもしれませんが,念の為)これで,自分用の証明書が作成されました。
次に同じ作業中のサーバーにて,レプリケーション先のサーバー用の証明書を作成します。コマンドは以下
New-SelfSignedCertificate -DnsName "testv2.fj.local" -CertStoreLocation "cert:\LocalMachine\My" -TestRoot -NotAfter (Get-Date).AddYears(30)
マシン名が変わっただけですね。コマンドが正常終了したら,証明書-個人 の部分に追加されています。
さて,これだけではまだ不十分です。
CertReq Test Root を 信頼されたルート証明機関 にする
前述で作成した証明書は CertReq Test Root 配下に所属しており,そして肝心の CertReq Test Root が 「中間証明機関」のため Hyper-Vでは使えませんでした。それで CertReq Test Root を コピーし「信頼されたルート証明機関」-「証明書」に貼り付けします。ただコピーして貼り付けるだけ。(下図)
これで, testv1.fj.local testv2.fj.local の証明書にエラーはなくなったはずです。
もしおかしければ,Test Root 証明書のエクスポートとしてインポートするという方法もある。
作成した証明書をエクスポートし,レプリケーション先のサーバーにインストール
■前述の手順で作成した testv1.fj.local testv2.fj.local これらをファイルにエクスポートしてください。(証明書コンソールで行ったらいい)エクスポートの際に表示される画面でいろいろ選択肢がでますが,「秘密キーも含める」にしてください。他はデフォルトでOKです。パスワードは設定しないといけない。
■信頼されたルート証明機関にある CertReq Test Root もエクスポートしてください。
これで3つのファイルができました。作成された3つのファイルを レプリケーション先サーバー testv2.fj.local にコピーします。
ここからは testv2.fj.local での作業です。先程の3つのファイルをインストールします
testv1.fj.local と testv2.fj.local の証明書は「ローカルコンピューター」「個人」にインストールしてください。
CertReq Test Root 証明書は,「ローカルコンピューター」「信頼されたルート証明機関」にインストールされるようにしてください。
これで証明書関係の仕込み作業は完了です。あとは Hyper-V にてレプリケーションの設定を行います。
Hyper-V マネージャーでレプリケーション設定を行う
悩むのは証明書関係かと思いますので,このからは簡潔に
レプリケーションの構成にて
・証明書ベースの認証を使用する ON
・証明書の選択 ボタン にて,自分のサーバー名の証明書を選ぶ(選ぶと言っても OK とキャンセルボタンしかでないかと)
・指定したサーバーからのレプリケーションを許可するにて,追加
相手先のサーバーを指定する(証明書と同じ名前でないとNG。つまり testv1.fj.local など)
Hyper-Vマネージャーで仮想サーバーを選択し,レプリケーションを有効にする
後はウィザードで進んでいきますが,レプリケーション先のサーバー名は,やはり証明書とまったく同じ名前でないとだめです。
お疲れ様でした。
証明書の有効期限チェック
証明書には有効期限がありますが,そのチェックを無効にすることもできます。Power Shell で以下のコマンドを実行し,レジストリを書き換えます。
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
補足
○たまたまかもしれないが,証明書をレプリケーション先にインストールし,すぐにレプリケーション元でレプリケーションを有効にしたら,「準備ができていない」みたいなエラーメッセージが表示された。数分後に試したらエラーはでなく,レプリケーションできた。証明書の認識?に少し時間がかかるんでしょうか。
○ CertReq Test Root 名前からも分かるとおりセキュリティ的には弱いです。とはいえ,安価ででき 他の方法でセキュリティが構築されているなら,あり かと。
プロパティ
Windows Server 2019
コメント